在Python中使用全局变量

时间:2017-06-08 19:19:38

标签: python global-variables

为什么在函数中使用global时变量的值没有变化。

我错过了什么吗?

class testglobal():
    a=2
    print(a)

    def change():

        global a        
        a = 5

    change()
    print(a)

2 个答案:

答案 0 :(得分:1)

要获取声明的输出,您的代码必须缩进,如下所示:

class testGlobal:

    a=2
    print(a)

    def change():

        global a        
        a = 5

    change()
    print(a)

在定义类时执行两个print语句,此时对a的两个引用都引用变量a,而不是global引用的a变量change

如果您真的对全局变量感兴趣,那么根本不需要这个类。请尝试以下代码:

a = 2
print(a)
def change():
    global a
    a = 5
change()
print(a)

答案 1 :(得分:0)

首先:如果你的变量在一个类中,那么它不是一个全局变量。 你必须在任何函数/方法/类之外声明它 第二:你班级的认同是错误的。在课堂内,从4个空格或标签开始。