【问题标题】:Why does my variable change in the certain function/statement only in Python?为什么我的变量仅在 Python 中的某个函数/语句中发生变化?
【发布时间】:2022-01-15 18:55:48
【问题描述】:

如果我在函数中更改它,我的变量将不会更新。这是代码:```

my_var = None
def func(string):
    if string == "Hello":
        my_var = string
        print(my_var) # prints 'Hello'

print(my_var) # prints None

如何更新所有脚本的变量?

【问题讨论】:

  • 你没有调用方法,用func(),只用到了第一行和最后一行代码(一切都执行了,但是方法定义不调用就没用了)
  • 您需要了解变量范围。无论如何——让函数改变非局部变量作为副作用通常不是一个好习惯。让你的函数 return 一些东西然后my_var = myfunc(string)

标签: python function variables


【解决方案1】:

首先你需要真正调用func,因为现在你的代码和

my_var = None
print(my_var)

所以改成

my_var = None
func("Hello")
print(my_var)

另外,你需要告诉你的方法使用全局的my_var,否则它会在方法的范围内定义一个同名的变量,而全局变量不会改变

def func(string):
    global my_var
    if string == "Hello":
        my_var = string
        print(my_var)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-01-27
    • 2023-03-26
    • 1970-01-01
    • 2021-03-06
    • 2014-03-25
    • 2017-12-20
    • 1970-01-01
    • 2021-12-18
    相关资源
    最近更新 更多