我使用python创建应用程序。我有两个不同的类,我正在玩一个全局变量。我想做的是这样
globvar = 0
class one:
global globvar
def __init__()
...
def func1()
...
globvar = 1
class two:
global globvar
def __init__()
...
def func2()
...
print globvar # I want to print 1 if I use func1
我做了类似的事情,但func2从不打印1,但只有0。所以问题是。。。是否可能通过不同的类更改全局变量?
您的全局声明位于错误的位置;它必须位于您分配给变量的点,即
func1
内。在也就是说,有一种更好的方法来解决这个问题,而不使用global:使
globvar
成为基类上的一个类属性,一个和两个都继承自这个基类。在(注意在
func1
中,您需要通过self.__class
进行分配,但是在func2
中,您可以直接在self
上访问它,因为Python如果在实例中找不到它,它将返回到类范围。)相关问题 更多 >
编程相关推荐