Class BigClassA:
def __init__(self):
self.a = 3
def foo(self):
self.b = self.foo1()
self.c = self.foo2()
self.d = self.foo3()
def foo1(self):
# do some work using other methods not listed here
def foo2(self):
# do some work using other methods not listed here
def foo3(self):
# do some work using other methods not listed here
Class BigClassB:
def __init__(self):
self.b = # need value of b from BigClassA
self.c = # need value of c from BigClassA
self.d = # need value of d from BigClassA
def foo(self):
self.f = self.bar()
def bar(self):
# do some work using other methods not listed here and the value of self.b, self.c, and self.d
Class BigClassC:
def __init__(self):
self.b = # need value of b from BigClassA
self.f = # need value of f from BigClassB
def foo(self):
self.g = self.baz()
def baz(self):
# do some work using other methods not listed here and the value of self.b and self.g
Вопрос: В принципе у меня есть 3 класса с большим количеством методов, и они несколько зависимы, как вы можете видеть из кода. Как передать значение переменных экземпляра self.b, self.c, self.d из BigClassA в BigClassB?Python: как делиться данными между экземплярами разных классов?
nb: эти 3 класса не могут быть унаследованы друг от друга, так как это не имеет смысла.
Что я имею в виду, это просто объединение всех методов в супер большой класс. Но я не считаю, что это правильный способ сделать это.
класс 'BigClassB (BigClassA):' и 'класс BigClassC (BigClassA, BigClassB)'. Использование наследования – ForceBru
Вы можете попробовать использовать композицию. То есть, когда вы создаете объект класса A внутри экземпляра класса B. Таким образом, у вас есть соединение, не говоря о том, что оно является специализацией другого. [Читать здесь] (http://learnpythonthehardway.org/book/ex44.html). Кроме этого, вы можете отправить объект класса A и оценить атрибут, который вам нужен, новому атрибуту в классе B. Хотя это может нарушить согласованность данных. – ljetibo
Вы хотите поделиться данными на экземпляр класса или глобально? –