Static in Python

The static variable and static method are the widely used programming concepts in various languages such as C++, PHP, Java, etc. These variables and methods belong to the class and the objects. In this section, we will learn how we create static variables and methods in Python.

Python Static Variable

When we declare a variable inside a class, but outside the method, it is called a static or class variable. It can be called directly from a class but not through the instances of a class. However, the static variables are quite different from the other member, and it does not conflict with the same variable name in the Python program.

Let's consider a program to demonstrate the use of static variables in the Python.

Static.py

Output:

Information technology
Information technology
John
Marcus
E101
E105
Information technology
Networking
Information technology
Networking
Database Administration

In the above example, the dept is a class variable defined outside of the class methods and inside the class definition. Where name and id are the instance variable that is defined inside a method.

Access the static variable using the same class object

We can directly access a static variable in Python using the same class object with a dot operator.

Let's consider a program to access the static variable in Python using the same class object.

staticVar.py

Output:

Lucky No. 7
This is a good Car

Static Method

Python has a static method that belongs to the class. It is just like a static variable that bounds to the class rather than the class's object. A static method can be called without creating an object for the class. It means we can directly call the static method with the reference of the class name. Furthermore, a static method is constrained with a class; hence it cannot change the state of an object.

Features of static methods

Following are the features of the static method:

  1. A static method in Python related to the class.
  2. It can be called directly from the class by reference to a class name.
  3. It cannot access the class attributes in the Python program.
  4. It is bound only to the class. So it cannot modify the state of the object
  5. It is also used to divide the utility methods for the class.
  6. It can only be defined inside a class but not to the objects of the class.
  7. All the objects of the class share only one copy of the static method.

There are the two ways to define a static method in Python:

  1. Using the staticmethod() Method
  2. Using the @staticmethod Decorator

Using the staticmethod() Method

A staticmethod() is a built-in function in Python that is used to return a given function as a static method.

Syntax:

A staticmethod() takes a single parameter. Where the passed parameter is a function that needs to be converted to a static method.

Let's consider a program to create a function as a static method using staticmethod() in Python.

staticMethod.py

Output:

Total Marks in Maths 92
 Total Marks in Science 95
 Total Marks in English 95

In the above program, we declared the Math_num method, Sci_num method, and Eng_num method as static method outside the class using staticmethod() function. After that, we can call the static method directly using the class name Marks.

Using the @staticmethod Decorator

A @staticmethod is an inbuilt decorator that defines the static method inside the class. It does not receive any argument as a reference to a class instance or a class calling the static method itself.

Syntax:

Note: A @staticmethod is a modern approach to define a method as a static method, and most of the programmer uses this approach in Python programming.

Let's create a program to define the static method using the @staticmethod decorator in Python.

staticFun.py

Output:

Total Marks in Maths 92
 Total Marks in Science 95
 Total Marks in English 95

Access a static method using the same class object

Consider a program to access the static method of the class using the @staticmethod in Python.

Test.py

Output:

Welcome to the World!!

Function returns a value using the static method

Let's write a program to return a value using the @staticmethod in Python.

Static_method.py

Output:

The person is not eligible to vote.





Latest Courses