Index
- built_in_functions
- Python abs()
- Python all()
- Python any()
- Python ascii()
- Python bin()
- Python bool()
- Python bytearray()
- Python bytes()
- Python callable()
- Python chr()
- Python classmethod()
- Python compile()
- Python complex()
- Python delattr()
- Python dict()
- Python dir()
- Python divmod()
- Python enumerate()
- Python eval()
- Python exec()
- Python filter()
- Python float()
- Python format()
- Python frozenset()
- Python getattr()
- Python globals()
- Python hasattr()
- Python hash()
- Python help()
- Python hex()
- Python id()
- Python input()
- Python int()
- Python isinstance()
- Python issubclass()
- Python iter()
- Python len()
- Python list()
- Python locals()
- Python map()
- Python max()
- Python memoryview()
- Python min()
- Python next()
- Python object()
- Python oct()
- Python open()
- Python ord()
- Python pow()
- Python print()
- Python property()
- Python range()
- Python repr()
- Python reversed()
- Python round()
- Python set()
- Python setattr()
- Python slice()
- Python sorted()
- Python staticmethod()
- Python str()
- Python sum()
- Python super()
- Python tuple() Function
- Python type()
- Python vars()
- Python zip()
- Python __import__()
- python1compute
- Python Program to Find Hash of File
- Python Program to Find the Size (Resolution) of a Image
- Python Program to Merge Mails
- Python Program to Count the Number of Each Vowel - Source Code: Using a list and a dictionary comprehension
- Python Program to Count the Number of Each Vowel - Source Code: Using Dictionary
- Python Program to Illustrate Different Set Operations
- Python Program to Sort Words in Alphabetic Order
- Python Program to Remove Punctuations From a String
- Python Program to Multiply Two Matrices - Matrix Multiplication Using Nested List Comprehension
- Python Program to Multiply Two Matrices - Source Code: Matrix Multiplication using Nested Loop
- Python Program to Transpose a Matrix - Matrix Transpose using Nested List Comprehension
- Python Program to Transpose a Matrix - Matrix Transpose using Nested Loop
- Python Program to Add Two Matrices - Source Code: Matrix Addition using Nested List Comprehension
- Python Program to Check Whether a String is Palindrome or Not
- Python Program to Add Two Matrices - Source code: Matrix Addition using Nested Loop
- Python Program to Convert Decimal to Binary Using Recursion
- Python Program to Find Factorial of Number Using Recursion
- Python Program to Find Sum of Natural Numbers Using Recursion
- Python Program to Display Fibonacci Sequence Using Recursion
- Python Program to Display Calendar
- Python Program to Shuffle Deck of Cards
- Python Program to Make a Simple Calculator
- Python Program to Find Factors of Number
- Python Program to Find LCM - Without using GCD function
- Python Program to Find HCF or GCD - Source Code: Using Euclidean Algorithm
- Python Program to Find LCM - Source Code: Using GCD function
- Python Program to Find HCF or GCD - Source Code: Using Loops
- Python Program to Find ASCII Value of Character
- Python Program to Convert Decimal to Binary, Octal and Hexadecimal
- Python Program to Find Numbers Divisible by Another Number
- Python Program To Display Powers of 2 Using Anonymous Function
- Python Program to Find the Sum of Natural Numbers
- Python Program to Find Armstrong Number in an Interval
- Python Program to Check Armstrong Number - Source Code: Check Armstrong number of n digits
- Python Program to Check Armstrong Number - Source Code: Check Armstrong number (for 3 digits)
- Python Program to Print the Fibonacci sequence
- Python Program to Display the multiplication Table
- Python Program to Find the Factorial of a Number
- Python Program to Print all Prime Numbers in an Interval
- Python Program to Find the Largest Among Three Numbers
- Python Program to Check Prime Number
- Python Program to Check Leap Year
- Python Program to Check if a Number is Odd or Even
- Python Program to Check if a Number is Positive, Negative or 0 Source Code: Using Nested if
- Python Program to Check if a Number is Positive, Negative or 0 Source Code: Using if...elif...else
- Python Program to Convert Celsius To Fahrenheit
- Python Program to Generate a Random Number
- Python Program to Convert Kilometers to Miles
- Python Program to Swap Two Variables Source Code: Without Using Temporary Variable
- Python Program to Swap Two Variables Source Code: Using temporary variable
- Python Program to Solve Quadratic Equation
- Python Program to Calculate the Area of a Triangle
- Python Program to Find the Square Root Source code: For real or complex numbers using cmath module
- Python Program to Find the Square Root Source Code: For positive numbers using exponent **
- Python Program to Add Two Numbers By One Line
- Python Program to Add Two Numbers Source Code: Add Two Numbers Provided by The User
- Python Program to Add Two Numbers
- Python Program to Print Hello world!
- python2based
Description Python staticmethod()
Python staticmethod()
The staticmethod() built-in function returns a static method for a given function.
The syntax of staticmethod() is:
staticmethod(function)Using staticmethod() is considered un-Pythonic way of creating a static function.
So, in newer versions of Python, you can use the Python decorator
@staticmethod
.The syntax of @staticmethod is:
@staticmethod
def func(args, ...)
staticmethod() Parameters
The staticmethod() method takes a single parameter:
• function - function that needs to be converted to a static method
Return value from staticmethod()
The staticmethod() returns a static method for a function passed as the parameter.
What is a static method?
Static methods, much like class methods, are methods that are bound to a class rather than its object.
They do not require a class instance creation. So, are not dependent on the state of the object.
The difference between a static method and a class method is:
• Static method knows nothing about the class and just deals with the parameters.
• Class method works with the class since its parameter is always the class itself.
They can be called both by the class and its object.
Class.staticmethodFunc()
or even
Class().staticmethodFunc()
Example 1: Create a static method using staticmethod()
-------------------------------------------------------------------------------------------------------------------------
class Mathematics:
def addNumbers(x, y):
return x + y
# create addNumbers static method
Mathematics.addNumbers = staticmethod(Mathematics.addNumbers)
print('The sum is:', Mathematics.addNumbers(5, 10))
---------------------------------------------------------------------------------------------------------------------------
When you run the program, the output will be:
The sum is 15
When do you use static method?
1. Grouping utility function to a class
Static methods have very limited use case, because like class methods or any other methods within a class, they cannot access properties of the class itself.
However, when you need a utility function that doesn't access any properties of a class but makes sense that it belongs to the class, we use static functions.
Example 2: Create utility function as a static method
------------------------------------------------------------------------------------------------------------------------------
class Dates:
def __init__(self, date):
self.date = date
def getDate(self):
return self.date
@staticmethod
def toDashDate(date):
return date.replace("/", "-")
date = Dates("15-12-2016")
dateFromDB = "15/12/2016"
dateWithDash = Dates.toDashDate(dateFromDB)
if(date.getDate() == dateWithDash):
print("Equal")
else:
print("Unequal")
------------------------------------------------------------------------------------------------------------------------------------
When you run the program, the output will be:
EqualHere, we have a
Dates
class that only works with dates with dashes. However, in our previous database, all dates were present in slashes.In order to convert the slash-dates to dash-dates, we have created a utility function
toDashDate
within Dates
.It is a static method because it doesn't need to access any properties of the Dates itself and only requires the parameters.
We can also create
toDashDate
outside the class but since it works only for dates, it's logical to keep it inside the Dates
class.2. Having a single implementation
Static methods are used when we don't want subclasses of a class change/override a specific implementation of a method.
Example 3: How inheritance works with static method?
--------------------------------------------------------------------------------------------------------------------------------------
class Dates:
def __init__(self, date):
self.date = date
def getDate(self):
return self.date
@staticmethod
def toDashDate(date):
return date.replace("/", "-")
class DatesWithSlashes(Dates):
def getDate(self):
return Dates.toDashDate(self.date)
date = Dates("15-12-2016")
dateFromDB = DatesWithSlashes("15/12/2016")
if(date.getDate() == dateFromDB.getDate()):
print("Equal")
else:
print("Unequal")
-----------------------------------------------------------------------------------------------------------------------------------------
When you run the program, the output will be:
EqualHere, we wouldn't want the subclass
DatesWithSlashes
to override the static utility method toDashDate
because it only has a single use, i.e. change date to dash-dates.We could easily use the static method to our advantage by overriding
getDate()
method in the subclass so that it works well with the DatesWithSlashes
class.