覆盖全局变量



我刚开始学习基础知识,但我不知道如何更新全局变量。代码为:

def spam():
global eggs
eggs='spam'
def update_eggs():
global eggs;eggs='global'
print(eggs)

我想重写";鸡蛋";变量集为";垃圾邮件";通过";全局";,我尝试了这篇文章中的方法:在Python中的一行中覆盖全局var?但它没有起作用。你能给我个建议吗?提前谢谢!Silvia

您需要调用函数来执行其中的代码。

eggs = 'something'
def spam():
global eggs
eggs='spam'
def update_eggs():
global eggs;eggs='global'
spam() <-- Call function
print(eggs)

这将(用箭头标记(调用函数spam,以便将鸡蛋更新为spam。希望这能有所帮助。

此外,看起来您没有定义全局变量";鸡蛋";。你需要提到鸡蛋=";这里的东西";在代码的开头。";全局";命令使得定义的函数能够在定义全局变量eggs之后对其进行编辑

global关键字允许您修改当前范围之外的变量。它用于创建全局变量,并在局部上下文中对变量进行更改。

在引用全局变量之前,最好在主上下文中初始化全局变量。

eggs = "global" # <-- global variable initialized
def spam():
global eggs
eggs = 'spam'
def update_eggs():
global eggs
eggs = 'update'
print(eggs)
spam()        # <-- updates global eggs variable
print(eggs)
update_eggs() # <-- updates global eggs variable
print(eggs)

输出:

global
spam
update

调用spam((或update_eggs((都会更新全局变量egs

最新更新