列出用户定义的变量python

我试图迭代python脚本中设置的变量.我遇到了以下情况:

Enumerate or list all variables in a program of [your favorite language here]

在第一个例子中:

#!/us/bin/python                                                                                    

foo1 = "Hello world"
foo2 = "bar"
foo3 = {"1":"a", "2":"b"}
foo4 = "1+1"

for name in dir():
    myvalue = eval(name)
    print name, "is", type(name), "and is equal to ", myvalue

它列出了存储在内存中的所有变量.我想隔离我在脚本中创建的变量,而不是列出默认创建的系统变量.有没有办法做到这一点?

最佳答案
默认情况下,您可以通过检查它们是否位于内置__builtins__模块中来删除模块中包含的变量,如下所示:

>>> x = 3
>>> set(dir()) - set(dir(__builtins__))
set(['__builtins__', 'x'])

唯一没有消除的是__builtins__本身,这很容易特殊情况.

另请注意,如果您重新定义了任何内置名称,这将不起作用.你不应该在实践中这样做,但很多人都这样做,很多是偶然的.

转载注明原文:列出用户定义的变量python - 代码日志