Variables de clase estáticas en Python
-
Utilice el
staticmethod()
para definir variables estáticas en Python -
Utilice el
@staticmethod
para definir variables estáticas en Python
Una variable estática en Python es una variable que se declara dentro de una clase definida pero no en un método. Esta variable se puede llamar a través de la clase dentro de la cual está definida, pero no directamente. Una variable estática también se denomina variable de clase. Estas variables se limitan a la clase, por lo que no pueden cambiar el estado de un objeto.
Este tutorial demostrará diferentes formas de definir variables estáticas en Python.
Utilice el staticmethod()
para definir variables estáticas en Python
El staticmethod()
en Python es una función incorporada que se utiliza para devolver una variable estática para una función determinada.
Este método ahora se considera una forma antigua de definir una variable estática en Python.
Ejemplo:
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.")
Producción :
This is a random class.
This class will print random text.
Aquí, primero, creamos una clase llamada StaticVar
. En el programa, declaramos una variable llamada random
como una variable estática fuera de la clase utilizando la función staticmethod()
. Por esto, podemos llamar al random()
directamente usando la clase StaticVar
.
Utilice el @staticmethod
para definir variables estáticas en Python
@staticmethod
es una forma moderna y la más utilizada para definir una variable estática. El @staticmethod
es un decorador integrado en Python. Un decorador es un patrón diseñado en Python que se utiliza para crear una nueva funcionalidad en un objeto ya existente sin cambiar su estructura inicial. Entonces, el decorador @staticmethod
se usa para definir una variable estática dentro de una clase en Python.
Ejemplo:
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.")
Producción :
This is a random class.
This class will print random text.
Tenga en cuenta que el decorador @staticmethod
se define antes de definir la variable estática random
. Debido a esto, podemos llamar fácilmente a la variable random
al final a través de la clase StaticVar
.
Además, tenga en cuenta que, en ambos métodos, no utilizamos el argumento self
, que se utiliza para acceder a los atributos y métodos de la función al definir la variable random
. Es porque las variables estáticas nunca operan a través de objetos.
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