我刚刚注意到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
的变量时,它在本地范围内找不到它,但它确实找到了全局变量