#python #python_3x #ооп #классы #объекты
Пример: есть объект Персона, у которого есть объект Голова. У Головы есть метод who_my_owner(), который должен возвращать Персону, кому она принадлежит. Можно, конечно, использовать уникальные идентификаторы, чтобы при создании головы, ей сообщался ид хозяина. Но есть ли другой способ, чтобы уместить его в один метод who_my_owner() и без дополнительных манипуляций с остальным кодом? class Person: def __init__(self): self.head = Head() class Head: def who_my_owner(self): pass pers1 = Person() pers2 = Person() pers3 = pers1.head.who_my_owner() #должно быть эквивалентно pers3 = pers1
Ответы
Ответ 1
class Person: def __init__(self): self.head = Head(self) class Head(): def __init__(self, parent=None): super().__init__() self.parent = parent def who_my_owner(self): # pass return self.parent pers1 = Person() print(f"pers1 - {pers1}") pers2 = Person() pers3 = pers1.head.who_my_owner() #должно быть эквивалентно pers3 = pers1 print(f"pers3 - {pers3}") pers1 -pers3 -
Комментариев нет:
Отправить комментарий