在Python中查看变量

6 投票
4 回答
7022 浏览
提问于 2025-04-17 06:58

有没有办法在我的Python程序运行时查看所有变量的列表,而不需要设置断点?因为我有很多变量在不断变化,打印出来太麻烦了。

谢谢

4 个回答

1

如果你问的是关于Python这门语言(而不是“Python作为一个应用和工具的生态系统”),据我所知,答案是“不可以”(至少开箱即用是不行的)。当然,有很多集成开发环境(IDE)可以让你使用调试功能来查看变量的值,比如可以参考Sumit的回答。

不过,如果在开发过程中你想要实时监控多个变量的值,可以使用logging模块,并定义你自己的处理器类,这样就可以把信息“实时”重定向到其他地方。将消息设置为log.debug级别,可以通过简单地改变你应用的最低日志级别来轻松开启或关闭这个功能。

希望这对你有帮助!

2

如果你在使用Pydev(这是Eclipse的一个Python扩展),你可以很方便地查看你的变量。不过,你需要先设置一个断点,然后才能逐步执行你的代码。

5

也许你可以用 inspect 这个工具来帮你,但你需要对得到的信息进行筛选。

用法示例:

> import inspect
> a = 5
> f = inspect.currentframe()
> print f.f_locals
...
...
'a': 5
...

值得一提的是,你不能直接在一个 for 循环中遍历得到的字典,因为如果你把它赋值给一个变量,就会改变这个字典。你只能遍历它的键(至少这是我刚发现的)。

举个例子:

for v in f.f_locals.keys():
    if not v.startswith("_"):
        print v

看看第一行:简单地写 for v in f.f_locals 是行不通的。

撰写回答