全局变量不保存更新值

问题描述 投票:1回答:2

我有一个全局变量 foo. 我正在使用一个函数将一个数字(作为参数发送到函数中)添加到到 foo. 我第一次调用这个函数时,它运行得很好,但第二次运行时,它只给我初始值和 foo 和作为参数传递的数字。我是python新手,以下是我的代码。

foo = 5
def add_number_to_foo(num):
    global foo
    return foo + num

add_number_to_foo(5)  # returns 10 which is fine

add_number_to_foo(6)  # returns 11, I should have got 16

我是python的新手,如果问题不懂,请原谅。谢谢。

python-3.x
2个回答
2
投票

你的代码的问题是,无论你返回的是什么,都没有设置回变量 foo. 以下代码应该可以解决你的问题。

foo = 5
def add_number_to_foo(num):
    global foo
    return foo + num

foo = add_number_to_foo(5)  # returns 10 which is fine
print(foo)  # prints 10
foo = add_number_to_foo(6)  # returns 11, I should have got 16
print(foo)  # prints 16

1
投票

我做了下面的工作 根据@learner的评论。

foo = 5
def add_number_to_foo(num):
    global foo
    foo = foo + num
    return foo

add_number_to_foo(5)  # returns 10
add_number_to_foo(6)  # returns 16

从现在开始,我已经将变量分配给了 foo 它工作得很好。

© www.soinside.com 2019 - 2024. All rights reserved.