在调用函数时更改全局变量

2024-04-20 06:50:52 发布

您现在位置:Python中文网/ 问答频道 /正文

有人能给我解释一下,每当调用globallyChange()函数时,如何将x的值更改为“不起作用”?多谢各位

def globallyChange():
    x = "didn't work"

def main():
    global x
    x = 10
    globallyChange() #Call the function for changes.
    print(x)

main()

CURRENT OUTPUT: >> 10

我也尝试过将list/array作为全局变量,当调用globallyChange()函数时,它实际上改变了全局变量list。我想知道整数/字符串/布尔全局变量和列表全局变量之间有什么不同

def globallyChange():
    lst.append(1)
    lst.append(5)
    lst.append(7)

def main():
    global lst
    lst = []
    globallyChange() #Call the function for changes.
    print(lst)

main()

OUTPUT: >> [1,5,7]

Tags: the函数foroutputmaindeffunctioncall
2条回答

您需要在分配给变量的所有函数中放置global声明。因此,它应该是:

def globallyChange():
    global x
    x = "didn't work"

在带有列表的版本中不需要此选项的原因是您没有为变量赋值。你只是在读变量;如果找不到局部变量,它会自动查找全局变量append()没有分配给变量,它在适当的位置修改列表

您需要在所有引用x的函数中将x定义为全局变量。否则python将创建一个新的局部变量

试试这个:

x = 0
def globallyChange():
    global x
    x = "didn't work"

def main():
    global x
    x = 10
    globallyChange() #Call the function for changes.
    print(x)

相关问题 更多 >