有没有办法在程序运行时查看python中所有变量的列表而不设置断点?打印过于混乱,因为我有很多不断变化的变量。
由于
答案 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!