Sobes.tech
Junior — Middle
94

Paaiškinkite, ką daro įmontinta funkcija property() Python kalboje ir kaip ji naudojama valdyti prieigą prie klasės atributų

Įmonės kur klausė
AstonAston

Atsakymas iš 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)

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