Sobes.tech
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
AstonAston

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)

И обращаться к атрибуту как к обычному свойству, сохраняя удобство и безопасность.