有没有一种方法可以在Python程序运行时查看所有变量的列表,而不需要设置断点?打印输出太乱了,因为我有很多经常变化的变量。谢谢。
也许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
是不会成功的。keys()
将迭代字典以构建列表,在分配给“v”之前已完成。这意味着如果您确实想按字典迭代它,仅使用dict(f.f_locals.keys())
就可以,或者如果您想用它分配名称并执行其他操作,则可以将其保存在变量中。您也可以使用f.f_locals.items()
,但不能使用 f.f_locals.iteritems()
或 f.f_locals.iterkeys()
。 - Ben如果你正在使用Pydev(Eclipse的Python扩展程序),你可以轻松地查看你的变量,但是你需要先设置一个断点,然后才能逐步执行你的代码。
locals()
。winpdb
虽然名字起得不太好,但它是一个跨平台的GPL许可的软件。 :) - mac