1. 方法装饰器
def f1(fun): print("1") def _f1(): print("2") fun() print("3") print("4") return _f1 @f1 def f2(): print("5") f2() ''' 执行结果: 1 4 2 5 3 ''' 2. 类中方法使用装饰器
class Dec(object): @staticmethod def fundec(fun): print('1') def _fundec(*keys): print('2') fun(*keys) print('3') print('4') return _fundec @staticmethod def fundec1(fun): print('1-A') def _fundec1(*keys): print('2-A') fun(*keys) print('3-A') print('4-A') return _fundec1 class Myclass(object): def __init__(self): print("初始化") @Dec.fundec1 @Dec.fundec def fun(self): print('5') if __name__ == '__main__': ins = Myclass() ins.fun()