Python函数的__dict__

时间:2018-01-05 05:20:59

标签: python python-3.x namespaces

我知道函数对象有一个__dict__。这几次用于向函数添加属性。有些人甚至用它来为函数添加anotations。

我怀疑如下。如果有:

def foo():
   a = 2
   return

“a”在哪里存储?

我提出这个问题是因为我希望在 foo __dict__中找到它,但现在我知道这不是函数__dict__的目的。

如果函数是类函数的实例对象,则对象的名称空间由其__dict__定义。 a 的命名空间是什么?

1 个答案:

答案 0 :(得分:1)

在定义yum install java-1.8.0-openjdk-devel -y时,变量a不存在,它是在foo运行时动态创建的,这就是它不作为属性存储的原因功能。由于foo存在于a的本地范围内,您可以使用foo函数查看它:

locals