Python中的多个对象实例共享全局变量

时间:2011-11-28 07:26:22

标签: python object global-variables multiple-instances

我希望有一个可由多个对象实例访问的全局变量x: 模块Obj应该具有以下内容:

x = 0

class Obj:  
  def set_x(self):    
      global x
      x = 2

  def print_x(self):    
      print x

...等

另一个模块(例如:main)实例化对象obj:

obj1 = Obj.Obj()
obj1.set_x()
obj2 = Obj.Obj()
obj2.print_x

这应该打印2

1 个答案:

答案 0 :(得分:2)

我认为你正在寻找类似静态变量的东西(我不确定它们在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

您应该看到this SO post了解更多信息。

相关问题