我知道函数对象有一个__dict__
。这几次用于向函数添加属性。有些人甚至用它来为函数添加anotations。
我怀疑如下。如果有:
def foo():
a = 2
return
“a”在哪里存储?
我提出这个问题是因为我希望在 foo 的__dict__
中找到它,但现在我知道这不是函数__dict__
的目的。
如果函数是类函数的实例对象,则对象的名称空间由其__dict__
定义。 a 的命名空间是什么?
答案 0 :(得分:1)
在定义yum install java-1.8.0-openjdk-devel -y
时,变量a
不存在,它是在foo
运行时动态创建的,这就是它不作为属性存储的原因功能。由于foo
存在于a
的本地范围内,您可以使用foo
函数查看它:
locals