1
resposta

@classmethod e @staticmethod

Não entendi o porquê existe @classmethod e @staticmethod. O que eles modificam no código e quando usar?

1 resposta

Ambos são utilizados para você acessar um método da classe, sem precisar criar uma instância dela, porém eles tem algumas diferenças entre si.

O @clasmethod é um método de classe, que tem acesso aos atributos da classe ** Esse método também pode ser chamado por uma instância da classe. O @staticmethod funciona como uma função qualquer, e ela não acessa os atributos da classe.

Geralmente utilizo @classmethod e @staticmethod para criar funções utilitárias que todas as classes tem acesso, que não precisam de uma instância, por exemplo escrever um log, ou enviar um e-mail, etc. De forma simplificada, quando preciso que que o método acesse os atributos da classe uso @classmethod, se o método não precisa acessar nenhum atributo da classe utilizo @staticmethod.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software