python装饰器

'''
python中装饰器很重要 一定要理解 如果只是被模版虽然可以 那你永远是半吊子 没价值
装饰器的理解需要有 '闭包函数'、'函数返回值'、'函数的穿参方式' 这些基础支撑才能很好的理解
'''
'''
一、不需要参数的装饰器很简单--重点
'''
# def login():
# print('登录成功')
'''
大家都知道现在调用login函数会打印'登录成功'
现在的要求是不改变调用方式 以及函数本体的前提下给这个函数添加一个打印功能
'''
def auth(func):
def inner(*args,**kwargs):
print('你需要添加的功能')
func()
return inner
@auth
def login():
print('登录成功')
'''
这个装饰器就实现了这样的功能
装饰器的作用:装饰函数(就比如化妆 你要涂粉底、画眼线 增加这个东西把自己装饰的更加满意)
'''



#二、有参数的装饰器--重点
def xxx(a):#继续包一层用来传参数

def auth(func):
def inner(*args,**kwargs):
print(f'欢迎光临{a}')
func()
return inner

return auth
@xxx('张三')
def shopping():
print('手机 300')
'''
要求 不修改shopping函数的代码和调用方式 先打印欢迎光临再去打印商品信息
根据要求我们就可以知道 用装饰器给目标函数加一个打印功能就可以了嘛
但是注意这个附加功能需要一个参数 和上面无参数装饰器对比去看 就是多加了一层用来传参数
'''
上一篇:python笔记:装饰器再理解


下一篇:inner join关联查询-索引问题