Back to questions
Junior — Middle
65
Можешь ли ты объяснить, что такое property в Python и как его можно использовать?
Answer from AI
sobes.tech AI
В Python property — это встроенный декоратор, который позволяет управлять доступом к атрибутам класса, превращая методы в свойства. Это удобно для инкапсуляции: можно определить геттер, сеттер и делитер для атрибута, при этом использовать синтаксис обращения как к обычному полю.
Пример использования:
class Person:
def __init__(self, name):
self._name = name # приватный атрибут
@property
def name(self):
return self._name
@name.setter
def name(self, value):
if not value:
raise ValueError("Name cannot be empty")
self._name = value
p = Person("Alice")
print(p.name) # вызовет геттер
p.name = "Bob" # вызовет сеттер
Таким образом, property позволяет контролировать чтение и запись атрибутов, добавлять валидацию или вычислять значения на лету, сохраняя удобный и понятный интерфейс.