【发布时间】:2012-05-23 04:46:53
【问题描述】:
为什么调用 tst 时下面的变量 (A,B,C,D) 没有改变。
A,B,C = 0,0,0
D = 0
def tst():
A,B,C = 1,2,3
D = 4
print(A,B,C,D)
tst() # tst is called
print(A,B,C,D)
Output:
(1, 2, 3, 4)
(0, 0, 0, 0)
【问题讨论】:
为什么调用 tst 时下面的变量 (A,B,C,D) 没有改变。
A,B,C = 0,0,0
D = 0
def tst():
A,B,C = 1,2,3
D = 4
print(A,B,C,D)
tst() # tst is called
print(A,B,C,D)
Output:
(1, 2, 3, 4)
(0, 0, 0, 0)
【问题讨论】:
因为 Python 范围规则。
在 def tst() 中,您正在创建局部变量 A、B 和 C,并为它们分配新值。
如果您希望分配给全局 A、B 和 C 值,请使用 global 关键字。
【讨论】: