Python property() Function
The Python property() function is used to create and manage the properties of a class with the help of other methods like getters and setters. If you don't want to use the property() function explicitly, you can use its @property decorator.
In an object-oriented programming language, like Python, getters and setters are used for data encapsulation. Here, Encapsulation means bundling the attributes and methods to restrict their direct access.
This method is one of the built-in functions and does not require any module to import.
Syntax
Following is the syntax of the Python property() function −
property(getter, setter, deleter, doc)
Parameters
The Python property() function accepts the following parameters −
getter − It represents the getter method which is used to get the value of an attribute.
setter − This parameter represents the setter method which is used to set the value of an attribute.
deleter − This parameter specifies the deleter method which is used to delete the value of an attribute.
doc − It specifies a string that contains the docstring for the attributes.
Return Value
The Python property() function returns the property attribute of the specified getter, setter, and deleter.
property() Function Examples
Practice the following examples to understand the use of property() function in Python:
Example: Use of property() Function
The code below demonstrates how to use the property() function to get, set and delete property attributes of a given class. For this purpose, we have created getter, setter and deleter method. [Read More: Python - Decorators]
class Metal:
def __init__(self, metalName):
self._metalName = metalName
def get_metal(self):
print("Getting Metal Name")
return self._metalName
def set_metal(self, name):
print("Setting Metal Name to:" + name)
self._metalName = name
def del_metal(self):
print("Deleting Metal Name")
del self._metalName
metalName = property(get_metal, set_metal, del_metal)
metal = Metal("Gold")
print(metal.metalName)
metal.metalName = "Silver"
del metal.metalName
Output of the above code is as follows −
Getting Metal Name Gold Setting Metal Name to:Silver Deleting Metal Name
Example: Creating Read-only Property Using @property Decorator
The following example shows the basic usage of Python property() function. Here, we are creating a simple read-only property with the help of @property decorator.
class Flight:
def __init__(self, jetEngine):
self._jetEngine = jetEngine
@property
def jetEngine(self):
return self._jetEngine
myFlight = Flight(121)
print("Getting the attribute value of class:")
print(myFlight.jetEngine)
When we run above program, it produces following result −
Getting the attribute value of class: 121
Example: Getter & Setter Functions Using @property
If we don't want to call property() function explicitly, we need to use the @property decorator. In the code below, we are creating a getter to get the property and adding a setter function to modify the property.
class Flight:
def __init__(self, model):
self._model = model
@property
def model(self):
return self._model
@model.setter
def model(self, modelVal):
if modelVal >= 0:
self._model = modelVal
else:
raise ValueError("Model value must be non-negative")
myFlight = Flight(1210012)
print("Setting the model number of Flight using setter:")
print(myFlight.model)
Following is an output of the above code −
Setting the model number of Flight using setter: 1210012
python_built_in_functions.htm