и посмотреть медиа
Código en una sirena - Codificación Python
и посмотреть медиа
Canal sobre programación en Python y otros idiomas. Explicaciones y códigos simples.
Canal sobre programación en Python y otros idiomas. Explicaciones y códigos simples.
bot de IA para clonar texto a voz y voz en Telegram. Cree audio utilizando la red neuronal de forma rápida y fácil.
Recurso para aquellos interesados en la programación. Enfóquese en Python, pero también cubre otros temas.
Знаете ли вы, что Python иногда подменяет атрибуты класса? Когда Python читает атрибут через объект, он не всегда возвращает то, что лежит в классе. Если у найденного объекта есть метод __get__, Python вызывает его и отдает результат вместо самого атрибута. Функция в классе – это такой объект, поэтому User.greet и u.greet возвращают разные вещи. Первое – функцию, второе – bound method с уже зашитым self. class User: def greet(self): return "hello" u = User() print(type(User.greet)) # print(type(u.greet)) # print(User.greet is u.greet) # False User.greet – просто функция. u.greet – bound method, отдельный объект, который Python создал в момент обращения. В нем уже зашит u как первый аргумент – поэтому self появляется автоматически. Дескриптор – это любой объект с методом __get__. Python вызывает его когда находит такой объект в __dict__ класса: class Readonly: def __get__(self, obj, objtype=None): if obj is None: return self # доступ через класс return 42 # доступ через инстанс class User: score = Readonly() u = User() print(User.score) # print(u.score) # 42 score в User.__dict__ – это объект Readonly. Python видит у него __get__ и вызывает его вместо того чтобы вернуть напрямую. Именно так работают property, classmethod, staticmethod – все они дескрипторы. class User: @classmethod def create(cls): return cls() print(type(User.__dict__["create"])) # print(type(User.create)) # В __dict__ лежит объект classmethod. При обращении через класс срабатывает его __get__ – и возвращается уже bound method с привязанным классом. Функции становятся методами не в момент определения класса, а в момент обращения через инстанс; но механизм один – __get__. В следующий раз – посмотрим на @property. Код на салфетке x Кусочки кода
Открыть канал и посмотреть медиаSolo los usuarios registrados pueden compartir su opinión.
¡Sé el primero en compartir tu experiencia con este recurso!