Совместное использование нескольких экземпляров объекта глобальной переменной в Python - PullRequest
0 голосов
/ 28 ноября 2011

Я хочу иметь глобальную переменную x, к которой могут обращаться несколько экземпляров объекта: Модуль Obj должен иметь что-то вроде:

x = 0

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

  def print_x(self):    
      print x

... и т. Д.

Другой модуль (ex: main) создает объект obj:

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

, это должно вывести 2

1 Ответ

2 голосов
/ 28 ноября 2011

Я думаю, вы ищете что-то вроде статических переменных (я не уверен, как они называются в 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

Вы должны увидеть этот пост для получения дополнительной информации.

...