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:

  1. By using property method we can change the method to property/attribute
  2. Property method simplify the getter and setter concept

1. By using property method we can change the method to property/attribute
class fruit:

def apple(self):
print('Apple is red color')

apple = property(apple)

obj = fruit()
obj.apple
Output:
(or)

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
Output:
In the above code to we mentioned get, set and delete method with the same name(speed) but for get method we mentioned @property and set method we mentioned @speed.setter and for delete method we mentioned @speed.deleter

Comments

Popular posts from this blog

Switch frame in selenium python

Learn basics of python collection data type (list, tuple, dictionary and set) instantly