标签: python function variables
当调用 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)
答案 0 :(得分:6)
因为Python的范围规则。
在def tst()中,您将创建局部变量A,B和C,并为它们分配新值。
如果要分配全局A,B和C值,请使用global关键字。
答案 1 :(得分:1)
tst方法中的变量是 local ,也就是说,它们引用的是仅存在于该方法范围内的不同值。使用global内的关键字global A,B,C,D(如tst中所述)来修复行为。请参阅示例here和问题here。
tst
global
global A,B,C,D