a = 0
b = 0
def test():
a = 1
b = 1
class Test:
print(a, b)
a = 2
test()
它给了
0 1
应该是
1 1
为什么会这样?
答案 0 :(得分:0)
在 test
函数内部,您实际上并未初始化一个新的 Test
对象,因此 Python 将通读类定义以在函数作用域内使用它,因此它确实执行了打印语句.问题是您正试图更改类范围内 a
的值,这会生成在函数定义之外采用 a
的先前值。