Можешь назвать встроенные в Python декораторы и кратко объяснить их назначение?
Answer from AI
sobes.tech AI
В Python есть несколько встроенных декораторов, которые упрощают работу с классами и функциями:
-
@staticmethod— превращает метод класса в статический, который не получает автоматически ссылку на экземпляр (self) или класс (cls). Используется для утилитарных функций внутри класса. -
@classmethod— метод получает первым аргументом класс (cls), а не экземпляр. Позволяет работать с классом, например, создавать альтернативные конструкторы. -
@property— превращает метод в свойство, позволяя обращаться к нему как к атрибуту без скобок, что удобно для инкапсуляции доступа к данным. -
@functools.lru_cache— кэширует результаты вызова функции для ускорения повторных вызовов с теми же аргументами.
Пример использования @property:
class Circle:
def __init__(self, radius):
self._radius = radius
@property
def area(self):
return 3.1415 * self._radius ** 2
c = Circle(5)
print(c.area) # Вычисляется как свойство, без скобок
Эти декораторы помогают писать более чистый и выразительный код.