全局变量不保存更新值

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了全局变量不保存更新值相关的知识,希望对你有一定的参考价值。

我有一个全局变量 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的新手,如果问题不懂,请原谅。谢谢。

答案

你的代码的问题是,无论你返回的是什么,都没有设置回变量 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
另一答案

我做了下面的工作 根据@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 它工作得很好。

以上是关于全局变量不保存更新值的主要内容,如果未能解决你的问题,请参考以下文章

从片段向数据库中插入值时ListView不更新

两次请求怎么共享变量

全局变量的值变化不会立即更新?

C#-WebForm-★内置对象简介★Request-获取请求对象Response相应请求对象Session全局变量(私有)Cookie全局变量(私有)Application全局公共变量Vi(代码片段

多处理全局变量更新未返回给父级

如何通知尾部更新到 C++ 窗口中的线程? [读取全局变量的未缓存值]