1

为什么调用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)
4

2 回答 2

6

因为 Python 范围规则。

在 def tst() 中,您正在创建局部变量 A、B 和 C,并为它们分配新值。

如果您希望分配给全局 A、B 和 C 值,请使用 global 关键字。

于 2012-05-23T04:51:00.967 回答
1

方法中的变量tstlocal,也就是说,它们引用了只存在于该方法范围内的不同值。使用内部的关键字global(如global A,B,C,Dtst来修复行为。请参阅此处的示例和此处的问题。

于 2012-05-23T04:50:41.203 回答