Python property method
Property Method:
The property method in python class is achieved by using built-in decorator called @property or property()
Property method is used for following reason:
- By using property method we can change the method to property/attribute
- Property method simplify the getter and setter concept
class fruit:
def apple(self):
print('Apple is red color')
apple = property(apple)
obj = fruit()
obj.apple
class fruit:
@property
def apple(self):
print('Apple is red color')
obj = fruit()
obj.apple
Output:
In the above code you might have noticed that method apple is called without parenthesis ( ) which means its converted to attribute/property. This is achieved by the power of property method which is implemented above in the apple method.
2. Property method simplify the getter and setter concept
Syntax:
property(fget = None, fset = None, fdel = None, doc = None)
Parameters:
fget - to get value of the property/attribute
fset - to set value of the property/attribute
fdel - to delete the property/attribute
doc - is a string (like a comment)
Let's code getters and setter concept using property method:
class Ducati_Bike:
def __init__(self, speed):
self._speed = speed
def get_speed(self):
print('Getting speed of Dukati')
return self._speed
def set_speed(self, value):
print('Setting speed to Dukati ', value)
self._speed = value
def del_speed(self):
print('Deleting speed')
del self._speed
# assigning parameter function to property method and declaring it to a variable
speed = property(get_speed, set_speed, del_speed, 'Speed property of bike')
bike = Ducati_Bike(225)
print(bike.speed)
bike.speed = 256
del bike.speed
Output:
In the above code as per the syntax we have mentioned get method(get_speed) as first parameter, set method(ser_speed) as second parameter, delete method(del_speed) as third parameter and comment as last parameter and declare it to a variable called speed.
By this declaration speed variable is transformed as common attribute for the get method(get_speed), set method(ser_speed) and delete method(del_speed) so that we can get value, set value and delete value with the same attribute speed as follow bike.speed
Another method of using property method for getter and setter:
Syntax:
@property
@function_name.setter
@function_name.deleter
class Ducati_Bike:
def __init__(self, speed):
self._speed = speed
@property
def speed(self):
print('Getting speed of Dukati')
return self._speed
@speed.setter
def speed(self, value):
print('Setting speed to Dukati ', value)
self._speed = value
@speed.deleter
def speed(self):
print('Deleting speed')
del self._speed
bike = Ducati_Bike(225)
print(bike.speed)
bike.speed = 256
del bike.speed
Comments
Post a Comment