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

 

标签: python

添加新评论