在Python中查看变量

时间:2011-11-24 07:24:53

标签: python debugging

有没有办法在程序运行时查看python中所有变量的列表而不设置断点?打印过于混乱,因为我有很多不断变化的变量。

由于

4 个答案:

答案 0 :(得分: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就不会成功。

答案 1 :(得分:2)

如果你在Pydev(eclipse的python扩展)上运行,你可以轻松地观察你的变量,但是你最初需要设置一个断点,然后才进入你的代码。

答案 2 :(得分:1)

抓住调试器:http://winpdb.org/然后你可以看到它们并在那里看到它们;但是,如果您只是在寻找一个函数来打印在本地范围内定义的所有变量,只需调用locals()

答案 3 :(得分:1)

如果你的问题是将python称为语言(而不是“python作为应用程序和实用程序的生态系统”),AFAIK,答案是“不”(不管怎么说都不是开箱即用的)。当然,有许多IDE允许您使用debug来查看变量的值[例如,参见Sumit answer)。

但是,如果在开发期间您想要一个包含许多变量的“实时监视器”,您可以使用logging模块,并定义your own Handler class以便在某处重定向“实时”信息。将消息设置为log.debug级别只需更改应用程序的最小日志级别即可激活/停用此功能。

HTH!