在名称 == 'main' 中,为什么变量在类中共享?

  • 本文关键字:变量 共享 main python-3.x
  • 更新时间 :
  • 英文 :


我刚刚注意到if name == 'main':中的变量与同一文件中的类共享——为什么会这样?我不记得在蟒蛇2中有这个问题…

class A:
def __init__(self, b):
self.b = b
def func_a(self):
return d
if __name__ == '__main__':
classA = A(1)
d = 2
print(classA.func_a())

打印出2。

理由是什么?

这肯定也发生在python2中非常简单:在函数/类之外声明变量使它们成为全局变量,当python搜索名称为d的变量时,它在本地范围内找不到它,但它确实找到了全局变量

最新更新