一: 装饰器
1:装饰器模板
def wrapper(func): def inner(*args,**kwargs): ret =func(*args,**kwargs) return ret return inner
开放封闭原则
对扩展是开放的
对修改时封闭的
import time
def wrapper(func):
def innner(*args,**kwargs):
start = time.time()
time.sleep(1)
func(*args,**kwargs)
end = time.time()
print(end-start)
return innner
@wrapper # func = wrapper(func)
def func():
print('hello world')
func()
# 给函数加上认证功能,登录一次就可以多次调用函数 FLAG = False def login(func): def innner(*args,**kwargs): global FLAG if FLAG: ret =func(*args,**kwargs) return func else: username = input('username: ') password = input('password: ') if username == 'wangys' and password == 'wangys': FLAG = True ret =func(*args,**kwargs) return func else:print("用户名密码错误") return innner @login def shoplist_add(): print('增加一个商品') @login def shoplist_delete(): print('删除一个商品') shoplist_add() shoplist_delete()