Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
对Python交互会话中所有已定义对象的引用_Python - Fatal编程技术网

对Python交互会话中所有已定义对象的引用

对Python交互会话中所有已定义对象的引用,python,Python,在Python交互式解释器会话中使用dir()。例如,键入此代码后键入dir(): import math a = 4 b = math.sqrt(a) 产生这个输出 ['__builtins__', '__doc__', '__name__', '__package__', 'a', 'b', 'math'] a、b和math在此列表中以字符串形式出现。有没有办法获取引用列表而不是字符串列表?既然这些是全局变量,那么: globals().values() 在Python 3中,这是

在Python交互式解释器会话中使用
dir()。例如,键入此代码后键入
dir()

import math 
a = 4
b = math.sqrt(a) 
产生这个输出

['__builtins__', '__doc__', '__name__', '__package__', 'a', 'b', 'math']

a
b
math
在此列表中以字符串形式出现。有没有办法获取引用列表而不是字符串列表?

既然这些是全局变量,那么:

globals().values()
在Python 3中,这是一个视图,而不是列表,因此:

list(globals().values())
这不是“所有定义的对象”。“绑定到
\uuuu main\uuuu
命名空间中的名称的所有对象”。毕竟,它不包括
math.sqrt
None
,这些对象是定义的。事实上,它甚至不是“所有对象都绑定到…”,它实际上只是“所有名称都在…”;尝试
c=a
,您将获得另一个条目,但没有额外定义的对象。它实际上是
locals()
,相当于
dir()
,而不是
globals()
。或者,更好的是,
vars()
(因为
vars(spam)
也相当于
dir(spam)
。当然,在顶层,局部变量和全局变量是一样的,所以没有太大区别…