Sobes.tech
Back to questions
Junior — Middle
54

Объясните, что делает встроенная функция property() в языке Python и как она используется для управления доступом к атрибутам класса

Companies where asked
AstonAston

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)

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