简单:为什么函数 B 中的函数 A 不更改传递给它的全局变量?
Simple: Why doesn't function A inside function B change the global variable passed to it?
代码不会向 'ctr' 变量加一。怎么做?
ctr = 0
def x(ctr): #function A
ctr+=1
def y(): #function B
global ctr
x(ctr) #function A
y()
print(ctr)
>>> 0
整数按值传递,而不是引用。您必须在 x()
中 global ctr
修改全局变量,或者 return 分配给值的结果:
ctr = 0
def x(ctr): #function A
ctr+=1
return ctr
def y(): #function B
global ctr
ctr = x(ctr) #function A
y()
print(ctr)
代码不会向 'ctr' 变量加一。怎么做?
ctr = 0
def x(ctr): #function A
ctr+=1
def y(): #function B
global ctr
x(ctr) #function A
y()
print(ctr)
>>> 0
整数按值传递,而不是引用。您必须在 x()
中 global ctr
修改全局变量,或者 return 分配给值的结果:
ctr = 0
def x(ctr): #function A
ctr+=1
return ctr
def y(): #function B
global ctr
ctr = x(ctr) #function A
y()
print(ctr)