Это невозможно сделать в общем виде, потому что
@foo def bar ...
точно совпадает с
def bar ... bar = foo (bar)
. Вы можете делать это в некоторых особых случаях, например, @staticmethod путем анализа объектов функции, но не лучше этого.
@staticmethod