为什么func .__ globals__被记录为只读?

时间:2018-03-03 14:28:56

标签: python

在我遇到的所有实际情况中,以下是True

import sys

print(sys.modules[__name__].__dict__ is globals())

def x(): pass

print(sys.modules[x.__module__].__dict__ is x.__globals__)

class A:
 def x(): pass

print(sys.modules[A.x.__module__].__dict__ is A.x.__globals__)

a = A()

print(sys.modules[a.x.__module__].__dict__ is a.x.__globals__

IDEOne Link

documentation for globals州:

  

返回表示当前全局符号表的字典。这始终是当前模块的字典(在函数或方法内部,这是定义它的模块,而不是调用它的模块)。

这里没有提到只读。事实上,在大多数情况下,字典是非常可写的。

docs for __globals__州:

  

对包含函数全局变量的字典的引用 - 定义函数的模块的全局命名空间。

     

只读

为什么属性列为只读?就此而言,"只读"适用于属性本身或它绑定的字典?似乎都不是这样。例如,https://stackoverflow.com/a/49077211/2988730

0 个答案:

没有答案