classmethod() Decorador de método de classe

Última atualização: 2026-09-22

classmethod() Decorador de método de classe

@classmethod marca um método como método de classe, cujo primeiro parâmetro é cls (a própria classe).

CategoriaFunções internas
TipoFunção interna
Versão do Pythonall

📝 Sintaxe

@classmethod
def func(cls, ...)

⚙️ Parâmetros

function ObrigatórioThe function to wrap as a class method.

Retorno:A classmethod descriptor, usable as a decorator.

💥 Exceções

▶ Exemplo

Edite o código, clique em Executar e veja o resultado no painel de saída:

Saída:

2
Mais estudos de caso em breve — aguarde.

❓ Perguntas frequentes

QQual é a diferença entre classmethod e staticmethod?
Aclassmethod recebe como primeiro argumento cls (a própria classe), permitindo acessar atributos de classe e chamar outros métodos de classe; staticmethod não recebe nenhum argumento especial e é como uma função comum.
QUm método de classe pode ser chamado por uma instância?
ASim, tanto C().inc() quanto C.inc() funcionam; chamando pela classe ou pela instância, o primeiro argumento do classmethod é sempre a própria classe.
QPara que servem normalmente os métodos de classe?
APara métodos de fábrica (como Date.today()), acessar ou modificar atributos de classe, e definir construtores alternativos para criação polimórfica.
QPor que cls.count += 1 num método de classe modifica a variável de classe?
APorque cls é a própria classe; modificar por cls altera o atributo de classe. Se escrever self.count, vira um atributo de instância — são coisas diferentes.
Web-Tutorial.com

Equipe Técnica Web-Tutorial

Uma plataforma de tutoriais mantida por diversos desenvolvedores. Cada tutorial é escrito e revisado por profissionais da área correspondente. Trabalhamos para manter nosso conteúdo preciso e confiável — se encontrar algum problema, avise-nos.

100%