Python中多个对象实例共享全局变量
我想要一个全局变量 x
,可以被多个对象实例访问:
模块 Obj
应该有类似这样的内容:
x = 0
class Obj:
def set_x(self):
global x
x = 2
def print_x(self):
print x
...等等。
另一个模块(比如:主模块)创建这个对象 obj:
obj1 = Obj.Obj()
obj1.set_x()
obj2 = Obj.Obj()
obj2.print_x
这应该打印出 2
1 个回答
3
我觉得你可能在找类似于静态变量的东西(我不太确定在Python中它们叫什么)。你有没有试过这样的写法:
class Obj:
x = 0
def set_x(self):
Obj.x = Obj.x + 1
def print_x(self):
print Obj.x
测试:
>>> obj1 = Obj()
>>> obj1.set_x()
>>> obj1.print_x()
1
>>> obj2 = Obj()
>>> obj2.set_x()
>>> obj2.print_x()
2
>>> obj1.print_x()
2
你可以看看这个StackOverflow帖子,里面有更多的信息。