在Python中更改全局值

时间:2017-03-25 10:04:31

标签: python python-3.x

我有一个名为" 结果"的全局变量并尝试通过调用函数来更改此值。

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来更改此全局变量。

1 个答案:

答案 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