Передача переменных между классами - PullRequest
1 голос
/ 31 декабря 2010

У меня есть 2 класса, которые работают с одними и теми же переменными, но обращают друг друга. Есть ли способ передачи переменных между ними без жесткого кодирования каждого обмена или объединения всех значений в один массив? Объединение классов не вариант.

#pseudocode

class class1:
   def __init___(self):
      # code
      initialize variable MAIN

   # do stuff
   # do stuff
   make variable stuff
   # do stuff
   make variable thing
   # do stuff

class class2:
   def __init___(self):
      # code
      initialize variable stuff
      initialize variable thing
   # do stuff
   # do stuff
   undo variable stuff
   # do stuff
   undo variable thing
   # do stuff
   make variable MAIN

Я хочу иметь возможность быстро отправлять данные от class1 до class2.

Ответы [ 2 ]

2 голосов
/ 31 декабря 2010

Я думаю, что это намного проще, чем вы думаете.Вот несколько примеров «отправки» данных между двумя классами.

class class2(object):
    def __init__(self, other):
        self.other = other

    def set_color(self, color):
        self.color = color
        # "Sending" to other class:
        self.other.color = color

    def set_smell(self, smell, associated_object):
        self.smell = smell
        associated_object.smell = smell

Использование как это:

>>> ob1 = class1()
>>> ob2 = class2(ob1)
>>> ob2.set_color("Blue")
>>> ob1.color
"Blue"

>>> ob2.set_smell("Good", ob1)
>>> ob1.smell
"Good"
2 голосов
/ 31 декабря 2010

Поместите общие данные в третий объект и сослаться на них из обоих классов.

...