The static method

The static method doesn't take an instance or class as the first argument. They are just simple functions. But we include them in class because they have some logical connection with the class. Consider a situation in the methodclass1.py program, when the pay of a person is less than 50000, then the incremented pay amount would be  1.30of pay amount , otherwise 1.20. To turn a regular method into a class method, we will use decorator (@staticmethod) at the top of the method.

Let's make the program:

class Leapx_org():
mul_num = 1.20
mul_num2 = 1.30
def __init__(self,first,last,pay):
self.f_name = first
self.l_name = last
self.pay_amt = pay
self.full_name = first+" "+last
@staticmethod
def check_amt(amt):
if amt <50000:
return True
else :
return False
def incrementpay(self):
if self.check_amt(self.pay_amt):
self.pay_amt = int(self.pay_amt*self.mul_num2)
else :
self.pay_amt = int(self.pay_amt*self.mul_num)
return self.pay_amt

L_obj1 = Leapx_org('mohit', 'RAJ', 40000)
L_obj2 = Leapx_org('Ravender', 'Dahiya',70000)
L_obj1.incrementpay()
L_obj2.incrementpay()
print L_obj1.pay_amt
print L_obj2.pay_amt

In the preceding program, the check_amt() method is a static method as specified by the decorator @staticmethod. The check_amt() method checks whether amt is greater than 50000 or not. The incrementpay() method uses the check_amt() static method. The check_amt() method does not change the class and instance variable. But it has some logical connection with regular method incrementpay().

Refer to the following output:

Output of program staticmethod1.py

Hope you understood the static method.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
18.221.165.115