我在更改/更新Python中的全局变量时遇到麻烦

时间:2019-03-15 02:25:54

标签: python global-variables

因为我是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

3 个答案:

答案 0 :(得分:0)

尝试此重构:

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

答案 1 :(得分:0)

x = 10

def NEWX():
     global x
     print (x)
     x = x + 5
     print (x)

print (x)
NEWX()
print(x)

全局变量规则:

    函数外部的
  • global 关键字无效
  • 默认情况下,函数外部的变量是全局的
  • 需要
  • global 关键字来读写函数中的全局变量

答案 2 :(得分:0)

在代码中,您首先要打印x的值。然后调用函数NEWX():,该函数将打印x,然后将5加到x上并打印新值。调用函数后,将再次打印x。

要了解发生了什么,请查看包含修复程序的以下示例:

 x = 10

def NEWX():
    print (x)
    global x
    x = x + 5
    print (x)
print (x)
NEWX()
print(x)

enter image description here