What is property() Function in Python

Python property() function is a built-in function that allows us to create a special type of attribute called a property for a class. Properties are used to encapsulate the access to an object attribute and to add some logic to the process such as computation, access control, or validation.

Python property() Function Methods

Below are the ways by which we can create property for a class in Python:

  • Using property() method
  • Using @property decorator

Using property() Method 

In this example, we are using the property() function to create a class property in Python. We define a class called Alphabet, and within this class, we create a property named value to encapsulate access to an internal attribute _value. This property allows us to control how the _value attribute is accessed and modified by providing custom getter and setter methods.

Python3




# 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('w3wiki')
print(x.value)
 
x.value = 'GfG'
 
del x.value


Output

Getting value
w3wiki
Setting value to GfG
Deleting value



Using @property Decorator

The main work of decorators is they are used to add functionality to the existing code. Also called metaprogramming, as a part of the program tries to modify another part of the program at compile time. First, specify that value() method is also an attribute of Alphabet then, we use the attribute value to specify the Python property setter and the deleter. Notice that the same method value() is used with different definitions for defining the getter, setter, and deleter. Whenever we use x.value, it internally calls the appropriate getter, setter, and deleter.

Python3




# 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


Output

Getting value
Peter
Setting value to Diesel
Deleting value



Python property() function

Python property() function returns the object of the property class and it is used to create the property of a class.  In Python, the property() function is a built-in function that allows us to create a property for a class. In this article, we will learn more about the Python property() function.

Similar Reads

Python property() Function Syntax

Python property() function is used to create a class property in Python....

What is property() Function in Python

Python property() function is a built-in function that allows us to create a special type of attribute called a property for a class. Properties are used to encapsulate the access to an object attribute and to add some logic to the process such as computation, access control, or validation....

Python Property vs Attribute

...