Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗pyOpCcHk 163 of 174 menu
◀ ▶

Хук потомка в ООП в Python

Иногда родительскому классу нужно узнать о каждом новом потомке. Для этого служит метод __init_subclass__.

Он вызывается в момент объявления класса-потомка, еще до создания объектов. Давайте выведем имя каждого наследника:

class User: def __init_subclass__(cls, **kwargs): super().__init_subclass__(**kwargs) print('subclass:', cls.__name__)

Объявим потомка. Сработает хук родителя:

class Student(User): pass

Такой способ удобен для регистрации наследников, проверки полей потомка или общей настройки иерархии.

В классе User сделайте __init_subclass__, который записывает имя потомка в список User.subclasses.

Объявите классы Employee и Student, наследующие от User. Выведите список User.subclasses.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить