如何在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