day02 (python进阶----装饰器优化)

一、装饰器优化——为了让我们的代码显得更简洁并且不会冗余,python给我们提供了语法糖。

①无参装饰器语法糖的使用:就是将我们写好的装饰器放在。需要被装饰的函数代码正上方第一行。此时我们只要@装饰器对象,就可以将装饰器的功能引用到需要被装饰的函数对象。示例:

#将上节课的示例搬过来,将def index(x,y)这个需要被装饰的对象丢到下面并@一下装饰器out. 此时@out这步操作等同于index=out(index)
# 之后如果有更多的类似index的需要被装饰对象,我们可以无限的@out
def out(ff):
    def func(*args,**kwargs):
        name=input('请输入你的账号====>')
        pwd=input('请输入你的密码====>')
        if name == 'yeqing' and pwd =='123':
            print('登录成功,开始装饰')
            f=ff(*args,**kwargs)
            return f
        else:
            print('账号密码错误')
    return func

@out
def index(x,y):
    print('牛逼的 %s %s' %(x,y))
index(1,2)

②有参装饰器的语法糖使用:需要将装饰器转变成有三层函数,其原因是因为out函数定义时里面的ff不能被改动,而我们又需要多一个值进行传参,此时我们只能去此层函数外部去定义,示例(其中dbtype需要一个定义,所

你可能感兴趣的:(python学习,python,开发语言,后端)