Menu
Coddy logo textTech

Decorador de Método de Classe

Parte da seção Object Oriented Programming do Journey de Python da Coddy — lição 12 de 64.

O decorador @classmethod cria métodos que recebem a própria classe como o primeiro parâmetro (cls) em vez de uma instância (self).

Aqui está um exemplo de uma classe com métodos de classe:

class Student:
    school_name = "Python Academy"
    student_count = 0
    
    def __init__(self, name):
        self.name = name
        Student.student_count += 1
    
    @classmethod
    def get_school_info(cls):
        return f"School: {cls.school_name}, Students: {cls.student_count}"
    
    @classmethod
    def create_guest_student(cls):
        return cls("Guest")

Chame métodos de classe usando o nome da classe:

info = Student.get_school_info()
print(info)

Crie alguns estudantes:

alice = Student("Alice")
bob = Student("Bob")

updated_info = Student.get_school_info()
print(updated_info)

Use métodos de classe como construtores alternativos:

guest = Student.create_guest_student()
print(guest.name)
print(Student.get_school_info())

Saída:

School: Python Academy, Students: 0
School: Python Academy, Students: 2
Guest
School: Python Academy, Students: 3

Métodos de classe também podem ser chamados a partir de instâncias:

alice = Student("Alice")
info_from_instance = alice.get_school_info()
print(info_from_instance)

Saída:

School: Python Academy, Students: 1

Ponto Chave: Use @classmethod quando você precisar acessar atributos da classe ou criar formas alternativas de construir objetos. O primeiro parâmetro é cls (a própria classe), não self.

Experimente você mesmo

Esta lição não inclui um desafio de código.

quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Object Oriented Programming