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

 

相关内容

    暂无相关文章

评论关闭