Дескрипторы — это объекты, которые управляют доступом к атрибутам других классов через методы
__get__
, __set__
и __delete__
.Они лежат в основе property, @staticmethod, @classmethod и ORM вроде Django.
class Celsius:
def __get__(self, instance, owner):
return instance._temp
def __set__(self, instance, value):
if value < -273.15:
raise ValueError("Температура ниже абсолютного нуля!")
instance._temp = value
class Temperature:
temp = Celsius()
t = Temperature()
t.temp = 25
print(t.temp) # 25
📌 Дескрипторы — это низкоуровневая магия, на которой построен весь механизм Python-свойств.
Please open Telegram to view this post
VIEW IN TELEGRAM