и посмотреть медиа
Zen of Python - Zen
и посмотреть медиа
Complete guide to Python philosophy and practice in one channel.
Complete guide to Python philosophy and practice in one channel.
Zen of Python - channel dedicated to Python philosophy and practices. Lessons, scripts, best practices and materials for mastering the language in Telegram.
Почему obj.prop вызывает функцию, а C.prop возвращает объект, и откуда метод знает про self Антонио Куни разобрал по шагам, что происходит при обращении к атрибуту — от байткода до кода CPython. Порядок поиска на картинке. Из него сразу объясняется несколько загадок. Дескриптор данных, то есть объект с __get__ и __set__, проверяется раньше словаря экземпляра — поэтому property не перекрыть, положив одноимённый ключ в obj.__dict__. И property остаётся дескриптором данных, даже когда сеттера нет: он определяет __set__ и сам поднимает AttributeError. Там же видно, откуда берётся связанный метод: обычная функция — это дескриптор без записи, и obj.meth разворачивается в C.meth.__get__(obj, C). У классов поиск устроен иначе: сначала дескрипторы данных метакласса, потом полный проход по порядку разрешения методов. Автор берёт CPython 3.12.11: в 3.13 этот код усложнён оптимизациями. @zen_of_python
Открыть канал и посмотреть медиаOnly registered users can share their opinion.
Be the first to share your impression of this resource!