Back to questions
Aston
Junior — Middle
54
Объясните, что делает встроенная функция property() в языке Python и как она используется для управления доступом к атрибутам класса
Companies where asked
Answer from AI
sobes.tech AI
Встроенная функция property() в Python используется для создания управляемых атрибутов класса — то есть таких, доступ к которым можно контролировать через методы (геттеры, сеттеры и делиттеры), но при этом обращаться к ним как к обычным атрибутам.
Это позволяет инкапсулировать логику доступа и изменения значения, не меняя интерфейс класса.
Пример использования:
class Person:
def __init__(self, name):
self._name = name # приватный атрибут
def get_name(self):
return self._name
def set_name(self, value):
if not isinstance(value, str):
raise ValueError("Имя должно быть строкой")
self._name = value
def del_name(self):
del self._name
name = property(get_name, set_name, del_name, "Свойство для имени")
p = Person("Иван")
print(p.name) # вызовет get_name
p.name = "Пётр" # вызовет set_name
Таким образом, property() позволяет:
- Определить функцию для чтения значения (getter)
- Определить функцию для записи значения (setter)
- Определить функцию для удаления значения (deleter)
И обращаться к атрибуту как к обычному свойству, сохраняя удобство и безопасность.