为啥我的变量仅在 Python 中的某个函数/语句中发生变化?
Posted
技术标签:
【中文标题】为啥我的变量仅在 Python 中的某个函数/语句中发生变化?【英文标题】: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)
【参考方案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)
【讨论】:
以上是关于为啥我的变量仅在 Python 中的某个函数/语句中发生变化?的主要内容,如果未能解决你的问题,请参考以下文章
如果评估的变量为 False,为啥我的 django 模板中的这个 IF 语句会执行?
如何使用窗口函数仅在 POSTGRES 中选择不超过某个值的行