【发布时间】:2021-01-22 00:27:32
【问题描述】:
为什么下面的test2() 会打印“True False”?我会期待“假假”。
我希望test2() 将全局值EC 更改为False,因此ec 也应该为False。
为什么不呢?
有没有一种直接的方法来获得“False False”行为?
EC = True
def test1(ec=EC):
print(ec, EC)
def test2():
global EC
EC=False
test1()
【问题讨论】:
-
@AryaMcCarthy:这是由相同的底层行为引起的(默认在函数定义时绑定),但它的表现大致相反(预期的变化不会发生,这个问题是关于发生意外的变化)。这是一个有用的参考,但它不是重复的。