property()
property() - это встроенная функция в Python, которая используется для создания свойств в классах. Свойства позволяют получать, устанавливать и удалять значения атрибутов класса через специальные методы.
Назначение:
Создание свойств в классах для управления доступом к атрибутам.
Инкапсуляция данных и добавление логики для получения, установки и удаления значений атрибутов.
Возврат:
Возвращает объект свойства, который можно использовать как атрибут класса.
Описание:
Принимает от одного до четырех аргументов:
fget(функция для получения значения),fset(функция для установки значения),fdel(функция для удаления значения) иdoc(строка документации).fget- обязательный аргумент, который определяет метод для получения значения свойства.fsetиfdel- необязательные аргументы, определяющие методы для установки и удаления значения свойства соответственно.doc- необязательный аргумент, содержащий строку документации для свойства.
Примеры:
Создание простого свойства только для чтения
Создание свойства для чтения и записи
Создание свойства с методом удаления
class Person:
    def __init__(self, name):
        self._name = name
    @property
    def name(self):
        return self._nameclass Rectangle:
    def __init__(self, width, height):
        self._width = width
        self._height = height
    @property
    def area(self):
        return self._width * self._height
    @area.setter
    def area(self, value):
        self._width = value / self._height
        self._height = value / self._widthclass Person:
    def __init__(self, name, age):
        self._name = name
        self._age = age
    @property
    def age(self):
        return self._age
    @age.setter
    def age(self, value):
        if value < 0:
            raise ValueError("Age cannot be negative")
        self._age = value
    @age.deleter
    def age(self):
        del self._ageИспользование:
Для инкапсуляции данных в объектно-ориентированном программировании, скрывая внутреннюю реализацию атрибутов и предоставляя контролируемый доступ к ним.
Для добавления дополнительной логики при получении, установке или удалении значений атрибутов.
Для валидации данных и обеспечения целостности объектов.
Для создания виртуальных атрибутов, которые вычисляются динамически на основе других атрибутов.
Для улучшения читаемости кода и соблюдения принципов объектно-ориентированного программирования.
Функция property() является важной частью реализации инкапсуляции данных и принципов объектно-ориентированного программирования в Python. Она позволяет создавать свойства, которые обеспечивают контролируемый доступ к атрибутам класса, и добавлять дополнительную логику для их обработки.
Последнее обновление