Функция Python property ()

Опубликовано: 30 Марта, 2022

In Python, the main purpose of Property() function is to create property of a class.

Syntax: property(fget, fset, fdel, doc)

Parameters:
fget() – used to get the value of attribute
fset() – used to set the value of attribute
fdel() – used to delete the attribute value
doc() – string that contains the documentation (docstring) for the attribute

Return: Returns a property attribute from the given getter, setter and deleter.

Примечание:

  • Если аргументы не указаны, метод property () возвращает базовый атрибут свойства, который не содержит никаких средств получения, установки или удаления.
  • Если документ не указан, метод property () принимает строку документации функции получения.

Example #1: Using property() method

# Python program to explain property() function
  
# Alphabet class
class Alphabet:
    def __init__(self, value):
        self._value = value
          
    # getting the values
    def getValue(self):
        print("Getting value")
        return self._value
          
    # setting the values
    def setValue(self, value):
        print("Setting value to " + value)
        self._value = value
          
    # deleting the values
    def delValue(self):
        print("Deleting value")
        del self._value
      
    value = property(getValue, setValue, delValue, )
  
# passing the value
x = Alphabet("GeeksforGeeks")
print(x.value)
  
x.value = "GfG"
  
del x.value

Выход:

 Получение ценности
GeeksforGeeks
Установка значения GfG
Удаление значения


Используя декоратор:
Основная работа декораторов заключается в том, что они используются для добавления функциональности в существующий код. Также называется метапрограммированием, поскольку часть программы пытается изменить другую часть программы во время компиляции.

Example #2: Using @property decorator

# Python program to explain property()
# function using decorator
  
class Alphabet:
    def __init__(self, value):
        self._value = value
          
    # getting the values    
    @property
    def value(self):
        print("Getting value")
        return self._value
          
    # setting the values    
    @value.setter
    def value(self, value):
        print("Setting value to " + value)
        self._value = value
          
    # deleting the values
    @value.deleter
    def value(self):
        print("Deleting value")
        del self._value
  
  
# passing the value
x = Alphabet("Peter")
print(x.value)
  
x.value = "Diesel"
  
del x.value

Выход:

Получение ценности
Питер
Установка значения Дизель
Удаление значения

Использование декоратора @property работает так же, как метод property ().

Сначала укажите, что метод value () также является атрибутом Alphabet, затем мы используем значение атрибута, чтобы указать установщик и удалитель. Обратите внимание, что один и тот же метод value () используется с разными определениями для определения получателя, установщика и удалителя. Всякий раз, когда мы используем x.value, он внутренне вызывает соответствующий метод получения, установки и удаления.

Приложения:
Используя метод property (), мы можем изменить наш класс и реализовать ограничение значения без каких-либо изменений, требуемых в клиентском коде. Так что реализация обратно совместима.

Внимание компьютерщик! Укрепите свои основы с помощью базового курса программирования Python и изучите основы.

Для начала подготовьтесь к собеседованию. Расширьте свои концепции структур данных с помощью курса Python DS. А чтобы начать свое путешествие по машинному обучению, присоединяйтесь к курсу Машинное обучение - базовый уровень.