staticmethod() Decorador de método estático
Última atualização: 2026-09-22
staticmethod() Decorador de método estático
@staticmethod marca o método como estático: não recebe self nem cls.
| Categoria | Funções internas |
|---|---|
| Tipo | Função interna |
| Versão do Python | all |
📝 Sintaxe
@staticmethod
def func(...):
⚙️ Parâmetros
| func Obrigatório | The function (callable) to wrap as a static method. |
|---|
Retorno:A static method descriptor; called without self or cls.
▶ Exemplo
Edite o código, clique em Executar e veja o resultado no painel de saída:
Saída:
7
🏷️ Funções internas relacionadas
💡 Casos relacionados
Mais estudos de caso em breve — aguarde.
❓ Perguntas frequentes
QQual é a diferença entre staticmethod e classmethod?
Astaticmethod não recebe nenhum argumento especial e se comporta exatamente como uma função comum; classmethod recebe cls (a própria classe) como primeiro argumento, permitindo acesso a atributos de classe.
QUma instância pode chamar um método estático?
ASim — ambos C().add(1, 2) e C.add(1, 2) funcionam, com argumentos idênticos e sem passar self automaticamente como num método de instância.
QPor que usar staticmethod em vez de uma função de nível de módulo?
AAgrupar funções utilitárias relacionadas à lógica da classe em seu namespace organiza melhor o código, e elas podem ser herdadas e sobrescritas por subclasses.
QUma função com @staticmethod é comportamentalmente diferente de uma função comum?
ALogicamente não, apenas na 'propriedade': um método estático é acessado pela classe e se relaciona à lógica dela, enquanto uma função comum vive no namespace do módulo.