🎯 Métodos são Executados Diretamente nas Classes em Python

Em poucas palavras

Definição técnica ou simplificada do conceito.


📝 Notas e Desenvolvimento

Em Python, podemos definir métodos dentro de uma classe que podem ser chamados diretamente na classe, sem a necessidade de criar uma instância (objeto) da classe. Isso é feito usando o decorador @classmethod.

Explicação:

  • Métodos de instância: São os métodos que normalmente usamos em classes. Eles recebem self como primeiro argumento, que representa a instância do objeto. Precisamos criar um objeto da classe para chamar esses métodos.
  • Métodos de classe: São decorados com @classmethod. Eles recebem cls como primeiro argumento, que representa a própria classe. Podemos chamar esses métodos diretamente na classe, sem precisar de um objeto.

Exemplo:

import random
 
class Hat:
    Houses = ["Gryffindor", "Hufflepuff", "Ravenclaw", "Slytherin"]
    
    @classmethod
    def sort(cls, name):
        print(f"{name} is in {random.choice(cls.Houses)}")
 
Hat.sort("Harry") # Output: Harry is in Slytherin (ou outra casa aleatória)
  • @classmethod: Este decorador indica que o método sort é um método de classe.
  • cls: Representa a classe Hat.
  • Hat.sort("Harry"): Chamamos o método sort diretamente na classe Hat, sem criar um objeto Hat.

Quando usar métodos de classe?

  • Quando você precisa de um método que opere na classe em si, em vez de em uma instância da classe.
  • Para criar métodos de fábrica, que retornam instâncias da classe (ou de subclasses).
  • Para acessar ou modificar atributos da classe.

Referência:


🔗 Conexões e Contexto


📚 Referências e Fontes

Citações Diretas