我有一个名为" 结果"的全局变量并尝试通过调用函数来更改此值。
import sys
def increment_result(a):
for i in range(0,3):
a += 1
result = 0
increment_result(result)
print(result)
但结果值为零,但期望结果值为3.如何通过在Python中使用Pass by Reference来更改此全局变量。
答案 0 :(得分:2)
不是尝试更改全局变量,而是返回更改的值并将返回值重新分配给调用者的变量:
import sys
def increment_result(a):
for i in range(0,3):
a += 1
return a
result = 0
result = increment_result(result)
print(result)
如果您确实想要更改全局变量,则需要使用global
语句声明它:
def increment_result(a):
global result # <-- to access the global variable
for i in range(0,3):
a += 1
result = a