Какие знаешь встроенные декораторы

Python Middle Без компании
Какие знаешь встроенные декораторы
Ответы
В Python есть несколько встроенных декораторов, вот основные: - `@property` – превращает метод в атрибут класса (геттер): ``` class Circle: def __init__(self, radius): self._radius = radius @property def radius(self): return self._radius ``` - `@classmethod` – делает метод методом класса (первый аргумент `cls`): ``` class MyClass: @classmethod def from_string(cls, string): return cls(int(string)) ``` - `@staticmethod` – делает метод статическим (нет доступа к `self` или `cls`): ``` class Math: @staticmethod def add(a, b): return a + b ``` - `@functools.cache` (Python 3.9+) – кеширует результаты функции: ``` import functools @functools.cache def factorial(n): return n * factorial(n-1) if n else 1 ``` - `@functools.lru_cache` – кеширует с ограничением по размеру: ``` @functools.lru_cache(maxsize=32) def get_data(key): return expensive_operation(key) ```