Раздел 45 · Python backend: Тарбадель

__getattr__, __setattr__, __getattribute__

middle~40 мин

без входаВойди, чтобы отмечать прогресс, вести заметки и решать задачи в редакторе. войти

Квот сидит на ящике у шахты с ноутбуком на коленях и не поднимает головы, когда ты спускаешься. На экране трасса длиной в тысячу строк, и все они одинаковые.

Python не сломался: он сделал ровно то, что ему сказали. Чтобы это увидеть, надо знать, что происходит, когда ты пишешь точку. До сих пор obj.name было для тебя одним действием: «достань атрибут». Под ним цепочка поиска, и в эту цепочку можно вставить свой код в трёх местах: __getattr__, __setattr__ и __getattribute__.

Сегодня ты пройдёшь цепочку целиком, узнаешь, когда Python зовёт каждый из трёх методов, и поймёшь, откуда у Квота тысяча одинаковых строк. А на этапе соберёшь арсеналу настройки через точку, которые копируются, сохраняются и не уходят в рекурсию.

урок из курса

Урок из курса «Python backend: Тарбадель». Курс покупается один раз и остаётся навсегда: 500 ₽.

Оплата пока не подключена: премиум и курсы открываются промокодом.