🎯 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
selfcomo 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 recebemclscomo 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étodosorté um método de classe.cls: Representa a classeHat.Hat.sort("Harry"): Chamamos o métodosortdiretamente na classeHat, sem criar um objetoHat.
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
- Atlas: MdC - Programação
- Notas Relacionadas: