Статические переменные класса в Python
-
Используйте
staticmethod()
для определения статических переменных в Python -
Используйте
@staticmethod
для определения статических переменных в Python

Статическая переменная в Python - это переменная, которая объявлена внутри определенного класса, но не в методе. Эту переменную можно вызвать через класс, внутри которого она определена, но не напрямую. Статическая переменная также называется переменной класса. Эти переменные ограничены классом, поэтому они не могут изменить состояние объекта.
В этом руководстве будут продемонстрированы различные способы определения статических переменных в Python.
Используйте staticmethod()
для определения статических переменных в Python
staticmethod()
в Python - это встроенная функция, используемая для возврата статической переменной для данной функции.
Этот метод сейчас считается старым способом определения статической переменной в Python.
Пример:
class StaticVar:
def random(text):
print(text)
print("This class will print random text.")
StaticVar.random = staticmethod(StaticVar.random)
StaticVar.random("This is a random class.")
Выход:
This is a random class.
This class will print random text.
Здесь мы сначала создаем класс под названием StaticVar
. В программе мы объявляем переменную с именем random
как статическую переменную вне класса с помощью функции staticmethod()
. Таким образом, мы можем вызывать random()
напрямую, используя класс StaticVar
.
Используйте @staticmethod
для определения статических переменных в Python
@ staticmethod - это современный и наиболее часто используемый способ определения статической переменной. @ Staticmethod - это встроенный декоратор в Python. Декоратор - это разработанный шаблон в Python, используемый для добавления новых функций к уже существующему объекту без изменения его исходной структуры. Итак, декоратор @staticmethod
используется для определения статической переменной внутри класса в Python.
Пример:
class StaticVar:
@staticmethod
def random(text):
# show custom message
print(text)
print("This class will print random text.")
StaticVar.random("This is a random class.")
Выход:
This is a random class.
This class will print random text.
Обратите внимание, что декоратор @staticmethod
определяется до определения статической переменной random
. Благодаря этому мы можем легко вызвать random
переменную в конце через класс StaticVar
.
Также обратите внимание, что в обоих методах мы не используем аргумент self
, который используется для доступа к атрибутам и методам функции при определении random
переменной. Это потому, что статические переменные никогда не работают через объекты.
Lakshay Kapoor is a final year B.Tech Computer Science student at Amity University Noida. He is familiar with programming languages and their real-world applications (Python/R/C++). Deeply interested in the area of Data Sciences and Machine Learning.
LinkedInСопутствующая статья - Python Class
- Статический метод Python
- Метаклассы в Python
- Частные методы в Python
- Множественное наследование в Python
- Создать абстрактный класс в Python