所以我在理解全局变量的基础上遇到了困难,因为我是python的初学者。我想尝试改变一个全局变量,但不幸的是它不起作用。你们谁能解释一下并帮我解决我的问题。谢谢!!
global x
x = 10
def NEWX():
print (x)
x = x + 5
print (x)
print (x)
NEWX()
print(x)
#this displays 10 10 15 10发布于 2019-03-15 10:42:30
尝试这个重构:
x = 10
def new_x():
global x
print(x)
x = x + 5
print (x)
print(x)
new_x()
print(x)
# prints 10 10 15 15我无法运行你的原始代码,它抱怨x在函数中没有定义。在函数的作用域内,x是未知的。它在更高的范围内是已知的,但在您的函数中不是。这就是为什么global x语句需要在函数中--让python知道从外部作用域使用x。
发布于 2019-03-15 10:48:38
x = 10
def NEWX():
global x
print (x)
x = x + 5
print (x)
print (x)
NEWX()
print(x)全局变量规则:
发布于 2019-03-15 11:10:13
在您的代码中,首先打印x的值,然后调用函数NEWX():,该函数打印x,然后将5加到x上并打印新值。调用该函数后,将再次打印x。
要了解发生了什么,请查看包含修复的示例:
x = 10
def NEWX():
print (x)
global x
x = x + 5
print (x)
print (x)
NEWX()
print(x)

https://stackoverflow.com/questions/55174686
复制相似问题