编程语言
首页 > 编程语言> > 如何在Python中访问全局变量?

如何在Python中访问全局变量?

作者:互联网

我有一个案例:

x = "me"

class Test():    
    global x

    def hello(self):
        if x == "me":
            x = "Hei..!"
            return "success"

我用外壳尝试这种情况.

如何打印x的输出/值为Hei ..!的x?

我尝试过

Test().hello # for running def hello
print x # for print the value of x

我打印x后,输出仍然是我.

解决方法:

您需要在函数(而不是类)中使用全局x:

class Test():
    def hello(self):
        global x
        if x == "me":
            x = "Hei..!"
            return "success"

Test().hello() #Use Parenthesis to call the function.

不知道为什么要从类方法更新全局变量,但是另一种方法是将x定义为类属性:

class Test(object): #Inherit from `object` to make it a new-style class(Python 2)
    x = "me"
    def hello(self):
        if self.x == "me":
            type(self).x = "Hei..!"
            return "success"

Test().hello()
print Test.x

标签:global-variables,python,class,methods
来源: https://codeday.me/bug/20191121/2055396.html