Método estático
Em projetos reais, você vai encontrar funções que pertencem a uma classe mas não precisam acessar atributos de instância ou da classe — como conversões de unidades ou validações. Criar um método normal sem self dentro da classe não funciona; é aí que entra o @staticmethod. Ele permite que você chame a função diretamente pela classe, sem precisar criar um objeto, deixando o código mais limpo e explícito.
O PROBLEMA
Calculadora com @staticmethod somar(a,b) e multiplicar(a,b).
EXEMPLO
Calculadora.somar(3,5) → 8
SOBRE O CONCEITO
O decorador @staticmethod transforma um método em um método estático: ele não recebe self nem cls, funcionando como uma função normal dentro do namespace da classe. O erro comum é escrever def somar(self, a, b) — isso cria um método de instância, que exige um objeto para ser chamado e recebe self como primeiro argumento, causando erro de tipo. Use @staticmethod antes da definição e remova o self. Assim, Calculadora.somar(3, 5) funciona corretamente, retornando 8, sem precisar instanciar nada.
RESOLUÇÃO