Variáveis de classe estáticas em Python

Lakshay Kapoor 30 janeiro 2023
  1. Use o staticmethod() para definir variáveis ​​estáticas em Python
  2. Use o @staticmethod para definir variáveis ​​estáticas em Python
Variáveis de classe estáticas em Python

Uma variável estática em Python é uma variável declarada dentro de uma classe definida, mas não em um método. Essa variável pode ser chamada por meio da classe dentro da qual está definida, mas não diretamente. Uma variável estática também é chamada de variável de classe. Essas variáveis ​​estão confinadas à classe, portanto, não podem alterar o estado de um objeto.

Este tutorial demonstrará diferentes maneiras de definir variáveis ​​estáticas em Python.

Use o staticmethod() para definir variáveis ​​estáticas em Python

O staticmethod() em Python é uma função embutida usada para retornar uma variável estática para uma determinada função.

Este método agora é considerado uma maneira antiga de definir uma variável estática em Python.

Exemplo:

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.")

Resultado:

This is a random class.
This class will print random text.

Aqui, primeiro, fazemos uma classe chamada StaticVar. No programa, declaramos uma variável chamada random como uma variável estática fora da classe usando a função staticmethod(). Com isso, podemos chamar random() diretamente usando a classe StaticVar.

Use o @staticmethod para definir variáveis ​​estáticas em Python

@staticmethod é uma forma moderna e mais usada para definir uma variável estática. O @staticmethod é um decorador embutido no Python. Um decorador é um padrão projetado em Python usado para criar uma nova funcionalidade para um objeto já existente sem alterar sua estrutura inicial. Portanto, o decorador @staticmethod é usado para definir uma variável estática dentro de uma classe em Python.

Exemplo:

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.")

Resultado:

This is a random class.
This class will print random text.

Observe que o decorador @staticmethod é definido antes de definir a variável estática random. Devido a isso, podemos facilmente chamar a variável random no final por meio da classe StaticVar.

Além disso, observe que, em ambos os métodos, não usamos o argumento self, que é usado para acessar os atributos e métodos da função ao definir a variável random. É porque variáveis ​​estáticas nunca operam por meio 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

Artigo relacionado - Python Class