在一般情况下,您不能这样做,因为
@with_connectiondef spam(connection): # Do something
相当于
def spam(connection): # Do somethingspam = with_connection(spam)
这意味着“原始”垃圾邮件甚至可能不再存在。一个(不太漂亮的)hack是这样的:
def with_connection(f): def decorated(*args, **kwargs): f(get_connection(...), *args, **kwargs) decorated._original = f return decorated@with_connectiondef spam(connection): # Do somethingspam._original(testcon) # calls the undecorated function



