如何使用循环获取dir()中的值?

how to use loop to get values in dir()?

为什么我无法使用循环获取 dir() 中项目的值:

for item in dir():
    print(item)

它只是打印

 __builtins__
 __doc__
 __loader__
 __name__
 __package__
 __spec__

那么,我如何使用循环来打印 item 中的值,即 "__main__" in __name__ 谢谢!

不带参数调用 dir 在逻辑上等同于 list(locals()),如获取当前命名空间中的变量名称列表(keys locals()字典)。

您将使用 locals()items 方法:

In [5]: for name, value in list(locals().items()):
   ...:     print(name, value)
   ...: 

vaultah 的 is best, I think, but you could also use eval 获取值:

for item in dir():
    print('{} : {}'.format(item, eval(item)))

使用 eval (it's dangerous!) 通常会有很多耻辱,我可能会因为这个答案而被否决,但是,我认为在这种有限的情况下没问题。