装饰器

python学习网 2019-04-23 18:03:09

一、装饰器的作用:不想修改函数的调用方式,但是还想在原来的函数前后添加功能;

二、原则:

开放封闭原则:

开放:对扩展是开放的

封闭:对修改是封闭的

三、语法糖:@装饰器名,紧接着被装饰函数

没有使用语法糖

def qqxing(f):#装饰器
    def xxc(*arges,**kwargs):
        x=f(*arges,**kwargs)#被装饰函数ssl()
        return x
    return xxc
def ssl(a,b):
    s=a+b
    print(s)
    return 'jisuanchenggong'
ssl=qqxing(ssl)
print(ssl(1,2))
#3
#jisuanchenggong

使用语法糖:

def qq(f):
    def cc(*arges,**kwargs):
        ret=f(*arges,**kwargs)
        return  ret
    return  cc
@qq#语法糖
def dd(a,b):#被装饰函数
    print('1242365756',a**2,b)
    return 'dsfggyhuieart'
print(dd(1,2))
#1242365756 1 2
#dsfggyhuieart

 

阅读(2423) 评论(0)