Я пытаюсь включить некоторые объекты в родительский класс, но эти объекты должны иметь возможность доступа к методам и атрибутам родительского класса.
Проблема в том, что у меня есть имеет отношение вместо отношения is-a .Обычно это предполагает составную структуру, но составление затрудняет доступ к методам и атрибутам объекта родительского класса.
У меня есть этот пример кода, чтобы проиллюстрировать, что мне нужно:
class Body:
def __init__(self):
self.head_obj = Head() # << head_obj is now part of Body object
# ...Set-up body...
def body_actions(self):
print('Body does something')
def common_method(self):
print('Body does something Head can do') # << Head needs this method
class Head:
def __init__(self):
# ...Set-up head...
def head_actions(self):
print('Head does something')
Body.common_method() # <<This call does not work without inheritance
ВВ приведенном выше коде объект Head
должен быть создан с помощью Body
, а объект Head
должен иметь доступ к методам в Body
.Это подразумевает некое гибридное наследование и композиционную структуру, но я не могу понять это.