и посмотреть медиа
Код на салфетке - Python кодинг
и посмотреть медиа
Канал о программировании на Python и других языках. Простые объяснения и коды.
Канал о программировании на Python и других языках. Простые объяснения и коды.
AI бот для озвучки текста и клонирования голоса в Telegram. Создавай аудио с помощью нейросети быстро и просто.
Ресурс для интересующихся программированием. Фокус на Python, но охватывает и другие темы. Простые примеры и разборы.
Знаете ли вы, что @property заменяет функцию дескриптором? @property – это не отдельное ключевое слово для геттеров, а обычный декоратор. Он берет функцию и заменяет ее объектом property: примерно как если бы в классе написали name = property(name). Поэтому в User.__dict__["name"] лежит уже не функция, а дескриптор, который Python вызывает при обращении к u.name. class User: def __init__(self, name): self._name = name @property def name(self): return self._name @name.setter def name(self, value): self._name = value u = User("Alice") print(u.name) # Alice u.name = "Bob" print(u.name) # Bob То же поведение можно записать явно через property(): class User: def __init__(self, name): self._name = name def get_name(self): return self._name def set_name(self, value): self._name = value name = property(get_name, set_name) u = User("Alice") print(u.name) # Alice print(type(User.__dict__["name"])) # u.name = "Bob" print(u.name) # Bob В User.__dict__["name"] лежит объект property. При чтении u.name Python находит его, видит __get__ – и вызывает. При записи u.name = ... – вызывает __set__. Если сеттер не определён, __set__ бросает исключение: class User: def __init__(self, name): self._name = name @property def name(self): return self._name u = User("Alice") print(u.name) # Alice u.name = "Bob" # AttributeError: property 'name' of 'User' object has no setter property – не отдельная конструкция языка для геттеров и сеттеров. Это встроенный дескриптор: объект с __get__, __set__, __delete__. Поэтому в Python эта задача решена через общий механизм атрибутов, а не через отдельное ключевое слово. В следующий раз – super() и MRO: где Python ищет атрибуты при наследовании. Код на салфетке x Кусочки кода
Открыть канал и посмотреть медиаТолько зарегистрированные пользователи могут делиться своим мнением.
Станьте первым, кто поделится своим впечатлением об этом ресурсе!