Декоратор класса — это callable, который принимает класс на входе и возвращает модифицированный или заменённый класс. Он работает так же, как декоратор функции, но применяется к определению класса вместо функции.
@my_decorator
class MyClass:
pass
Это эквивалентно написанию MyClass = my_decorator(MyClass).
def add_repr(cls):
cls.__repr__ = lambda self: f"{cls.__name__} instance"
return cls
@add_repr
class MyClass:
pass
@dataclass — автоматически генерирует __init__, __repr__ и другие методыДекораторы классов и декораторы функций используют один и тот же механизм, но декораторы классов работают на более широком уровне, что делает их мощным инструментом для модификации или улучшения целых классов — чистым и переиспользуемым способом.
Декораторы класса получают весь объект класса в качестве аргумента и могут модифицировать все методы и атрибуты одновременно, в то время как декораторы функций нацелены на отдельную функцию.
Новый — ещё не проверен сообществом
Вы