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()