Вот пример того, что я пытаюсь сделать:
class Parent():
def __init__():
self.parent_var = 'ABCD'
x = Child(self) # self would be passing this parent instance
class Child():
def __init__(<some code to pass parent>):
print(self.parent_var)
foo = Parent()
Теперь я знаю, о чем вы думаете, почему бы просто не передать себя parent_var самому дочернему экземпляру? Ну, моя фактическая реализация имеет более 20 переменных класса в Parent. Я не хочу вручную передавать каждую переменную в __init__ экземпляра Child, который создается в Parent - есть ли способ сделать все переменные класса Parent доступными для Child?
РЕДАКТИРОВАТЬ - РЕШЕНО: Это как я нашел, что работает:
class Parent():
def __init__(self):
self.parent_var = 'ABCD' # but there are 20+ class vars in this class, not just one
x = Child(self) # pass this parent instance to child
class Child():
def __init__(self, parent):
for key, val in vars(parent).items():
setattr(self, key, val)
print(self.parent_var) # successfully prints ABCD
foo = Parent()