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

Метод __new__ в ООП в Python

При создании объекта Python сначала вызывает специальный метод __new__, а уже потом конструктор __init__. Метод __new__ должен создать и вернуть новый объект класса.

Обычно __new__ не переопределяют. Если это все же нужно, внутри вызывают реализацию родительского класса через super().__new__(cls).

Пусть у нас есть класс User:

class User: def __new__(cls, name): print('__new__') return super().__new__(cls) def __init__(self, name): print('__init__') self.name = name

Создадим объект и посмотрим порядок вызовов:

user = User('john')

Сделайте класс Employee с переопределенным __new__, который выводит текст перед созданием объекта, и конструктором, который записывает имя сотрудника.

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