Os decorators são funções que recebem uma classe ou uma função e retornam algo para substituir a classe ou a função que receberam. Assim é possível mudar todo o comportamento da função ou da classe, simplesmente a substituindo por outra coisa, ou adicionar comportamento ao comportamento padrão.
a) @staticmethod: permite criar métodos estáticos e esses métodos não podem ser sobrescritos pelas subclasses. Ele é imutável.
b) @classmethod: permite criar métodos estáticos que podem ser sobrescritos pelas subclasses. Isto é porque o primeiro parâmetro das funções que tem o @classmethod tem que ser sempre cls (classe)
Fonte:http://programandonoaquario.blogspot.com.br/2016/07/python-decorator.html