Junior — Middle
81
Erklären Sie, was die eingebaute Funktion property() in Python macht und wie sie zur Steuerung des Zugriffs auf Klassenattribute verwendet wird
Unternehmen wurden gefragt
Antwort von AI
sobes.tech KI
Встроенная функция 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)
И обращаться к атрибуту как к обычному свойству, сохраняя удобство и безопасность.