Variables de clase estáticas en Python

Lakshay Kapoor 30 enero 2023
  1. Utilice el staticmethod() para definir variables estáticas en Python
  2. Utilice el @staticmethod para definir variables estáticas en Python
Variables de clase 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 avatar Lakshay Kapoor avatar

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

Artículo relacionado - Python Class