A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://www.geeksforgeeks.org/python-staticmethod-function/ below:

Python staticmethod() Function - GeeksforGeeks

Python staticmethod() Function

Last Updated : 23 Jul, 2025

Python staticmethod() function is used to convert a function to a static function. Static methods are independent of class instances, meaning they can be called on the class itself without requiring an object of the class.

Example:

Python
class Utility:
    def msg(name):
        return f"Hello, {name}!"

    msg = staticmethod(msg)  # Using staticmethod() function

# Calling the static method
print(Utility.msg("Vishakshi"))

Explanation: Utility class has a static method msg() that doesn’t need an object to work. It simply takes a name and returns "Hello, {name}!". Since it's a static method, we can call it directly using Utility.greet("Vishakshi") without creating an instance of the class.

Syntax of staticmethod()

staticmethod(function)

What are Static Methods in a Python

In object-oriented programming (OOP), a static method is a method that belongs to the class rather than an instance of the class. It is defined using the @staticmethod decorator and does not have access to instance-specific attributes (self) or class-specific attributes (cls).

Key characteristics of statics methods:

When to Use Static Methods?

Static methods are useful in situations where a function is logically related to a class but does not require access to instance-specific data. Common use cases include:

Examples of staticmethods() Usage Example 1: Using staticmethod() for a Simple Utility Function Python
class MathUtils:
    def add(a, b):
        return a + b

    add = staticmethod(add)  # Using staticmethod() function

# Calling the static method
res = MathUtils.add(9, 8)
print(res)

Explanation: MathUtils class has a static method add() that doesn’t need an object to work. It simply takes two numbers, adds them and returns the result.

Example 2: Static Method for Mathematical Operations

If a method does not use any class properties, it should be made static. However, methods that access instance variables must be called via an instance.

Python
class DemoClass:
    def __init__(self, a, b):
        self.a = a
        self.b = b

    def add(a, b):
        return a + b

    def diff(self):
        return self.a - self.b

# Convert add() into a static method
DemoClass.add = staticmethod(DemoClass.add)

# Calling the static method without creating an instance
print(DemoClass.add(1, 2))

# Creating an instance to access instance-specific data
obj = DemoClass(1, 2)
print(obj.diff())

Explanation:

Example 3: Accessing Class Variables Using a Static Method

Static methods cannot access instance attributes but can access class-level variables.

Python
class MathUtils:
    num = 40  # Class variable

    def double():
        return MathUtils.num * 2

    double = staticmethod(double)  # Using staticmethod() function

# Calling the static method
res = MathUtils.double()
print(res)

Explanation: class variable num (40) is shared across instances. The static method double() directly accesses it and returns twice its value. Since it's static, we call it without creating an instance.

Example 4: Using a static method for string formatting Python
class Formatter:
    def format_name(first_name, last_name):
        return f"{last_name}, {first_name}"

    format_name = staticmethod(format_name)  # Using staticmethod() function

# Calling the static method
res = Formatter.format_name("For Geeks", "Geeks")
print(res)

Explanation: Formatter class has a static method format_name() that takes a first and last name and returns them in "LastName, FirstName" format.

Why Use @staticmethod Instead of staticmethod()? Example: Using @staticmethod Python
class Utility:
    @staticmethod
    def greet(name):
        return f"Hello, {name}!"

# Calling the static method
print(Utility.greet("Vishakshi"))

Explanation: Using @staticmethod is the preferred approach as it enhances readability and follows Python's best practices. However, staticmethod() is still useful in cases where decorators are not an option (e.g., dynamically assigning methods).



RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4