python之装饰器
装饰器 : 在不改变原有代码的前提下,为原函数扩展新功能
定义:装饰器用于拓展原来函数功能的一种语法,返回新函数替换旧函数
优点:在不更改原函数代码的前提下 给函数拓展新的功能
@符号 装饰器的标识符 :
(1) 自动把下面修饰的原函数当成参数传递给装饰器
(2) 把返回的新函数去替换原函数
(1) 装饰器的原型
def kuozhan(_func): def newfunc(): print("厕所前 ... 干净整齐") _func() print("厕所后 ... 臭气熏天") return newfunc def func(): print("我是屌丝...") func = kuozhan(func) # func = newfunc func() <=> newfunc() func()
(2) @符号的使用
def kuozhan(_func): def newfunc(): print("厕所前 ... 干净整齐") _func() print("厕所后 ... 臭气熏天") return newfunc @kuozhan def func(): print("我是高富帅...") func()
(3) 装饰器的嵌套
def kuozhan1(_func): def newfunc(): print("厕所前 ... 人模狗样1") _func() print("厕所后 ... 牛头马面2") return newfunc def kuozhan2(_func): def newfunc(): print("厕所前 ... 面黄肌瘦3") _func() print("厕所后 ... 红光满面4") return newfunc @kuozhan2 @kuozhan1 def func(): print("我是白富美...5") func()