Вы можете украсить функции после их определения. На самом деле, декораторы функций - это только синтаксический сахар. Например, вы можете заменить
@classmethod
@synchronized(lock)
def foo(cls):
pass
на
def foo(cls):
pass
foo = synchronized(lock)(foo)
foo = classmethod(foo)
См. https://www.python.org/dev/peps/pep-0318/ для деталей.