我在python中更改/更新全局变量时遇到问题

问题描述 投票:0回答:3

因此我无法理解全局变量的基础知识,因为我是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
python global-variables
3个回答
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


0
投票
x = 10

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

print (x)
NEWX()
print(x)

全局变量规则:

  • 函数外的全局关键字无效
  • 函数外部的变量默认为全局变量
  • 在函数中读取和写入全局变量需要global关键字

0
投票

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

要了解发生的情况,请查看包含此修复程序的示例:

 x = 10

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

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.