Introduction to Static Method in Python
The following article provides an outline on Static Method in Python. A static method is a method which is bound to the class and not to the objects of that class. But static method can’t access or modify the state of a class unlike a class method. Static method is defined inside the Class but it should not be considered as a class method. A class method takes “cls” as its first parameter while a static method needs no specific parameters. A class method can access and modify class state whereas a static method can’t access or modify it. Static method knows nothing about class state. A class method is created using @classmethod decorator while static method is created using @staticmethod decorator.
In python static methods can be defined in two ways:
1. Using staticmethod()
2. By using @staticmethod decorator
// code to be executed
Approach (2) is the most common way in python to create static methods.
Examples of Static Method in Python
Given below are the examples:
Program for basic calculator.
Basic calculator using Class and static method.
@staticmethod decorator is used while defining static methods.
# Prompting user to enter two values
print("Please enter values for x and y")
x = int(input())
y = int(input())
# static method are called using class_name.method()
print("Sum of two numbers entered" , Calculator.add(x, y) )
print("Difference of two numbers entered", Calculator.sub(x, y))
print("Multiplication of two numbers entered", Calculator.mul(x, y))
print("Division of two numbers entered", Calculator.div(x, y))
- A class “Calculator” is created. Inside this four static methods add(), sub(), mul(), and div() and are defined to perform four basic arithmetic operations.
- @staticmethod decorator is used to identify that the following defined methods are static ones.
- User is then prompted to enter values for two variables which are then passed when static methods are called. Static methods are called as class_name.static_method().
Output for all the methods is then printed in respective print statements as shown in below output.
This program can be implemented using staticmethod().
# no self parameter or cls paramter is used as these are for instance and class methods
def add(a, b):
return (a + b)
def sub(a, b):
return (a - b)
def mul(a, b):
return (a * b)
def div(a, b):
return (a / b)
print("Enter values for x and y")
x = int(input())
y = int(input())
# create add static method
Calculator.add = staticmethod(Calculator.add)
print('The sum is:', Calculator.add(x, y))
# create sub static method
Calculator.sub = staticmethod(Calculator.sub)
print('The difference is:', Calculator.sub(x, y))
# create mul static method
Calculator.mul = staticmethod(Calculator.mul)
print('The multiplication is:', Calculator.mul(x, y))
# create div static method
Calculator.div = staticmethod(Calculator.div)
print('The division is:', Calculator.div(x, y))
Program to format date.
# declaring static method to format input date
format_date = indate.replace('/','-')
inp_date = '2019/12/19'
print("Formatted date :", Format.date_format(inp_date))
Program to categories human and checking eligibility to vote.
# method to classify a person's age
if age > 0 and age <= 12 :
elif age > 12 and age <= 18 :
elif age > 18 and age <=59 :
return "Senior adult"
# method to check voting eligibility
if age > 18 :
return "Eligible to vote"
return "Not eligible to vote"
# Prompting user to enter his age
inp_age = int(input())
print("You are a/an", Classifier.ageClassfier(inp_age),'and you are',Classifier.eligibility(inp_age))
- Class Classifier is created.
- Two static methods are defined. First is ageClassfier() which will classify a person’s age and categories into one of the four categories. Second method is eligibility() which will determine whether this person is eligible to vote or not.
- User is then prompted to enter his age.
- Results (person age category and his eligibility) are then printed.
Program to print number pattern ( up to digit 10).
for num in range(10):
for i in range(num):
print(num, end=" ") # print number
# new line after each row to display pattern correctly
Though there are class and instance method to accomplish object oriented paradigm. Static methods have a different use case. When we need to implement some functionality not w.r.t class or an object, we create static method. This is useful to create utility methods as they are not tied to an object lifecycle.
This is a guide to Static Method in Python. Here we discuss the introduction and examples of static method in python. You may also have a look at the following articles to learn more –