1.装饰器会在函数运行到@装饰器时直接开始装饰,而不是调用函数后装饰
2.装饰器可以在不改变原代码的情况下对函数进行功能的增加
# 装饰器1 def func(func): def call_func(*args, **kwargs): # 被装饰的函数 func(*args, **kwargs) print('维持生命还需要娱乐活动!') print('维持生命还需要锻炼身体!') return call_func # 装饰器2 def func1(func): def call_func(*args, **kwargs): # 被装饰的函数 func(*args, **kwargs) print('玩了最终幻想!') print('玩了火焰纹章!') return call_func # 给函数加上装饰器1 @func def live(): print('维持生命需要喝水!') print('维持生命需要吃饭!') # 给函数加上装饰器2 @func1 def play(): print('玩了穿越火线!') print('玩了英雄联盟!') def main(): print('创建了一个角色!') live() play() if __name__ == '__main__': main()