Страницы

Поиск по вопросам

среда, 26 февраля 2020 г.

Python Как узнать кому принадлежит объект через метод этого объекта

#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 -

Комментариев нет:

Отправить комментарий