函数进阶_装饰器进阶

#装饰器的进阶
#functools wraps
#带参数的装饰器
#多个装饰器修饰同一个函数

#周末的作业---->三级菜单作业还没写

#1.编写装饰器,为多个函数加上认证的功能(用户的账号和密码来源于文件)
#要求登陆成功一次,后续的函数都无需在输入用户名和密码

# def warpper():
#
# def inner():
#
# ret = func()
# return ret
# return inner
#
# @warpper
# def qqxing():
# print("username, password")
# qqxing()
FLAG = False
def login(func):
def inner(*args, **kwargs):
global FLAG
'''登陆程序'''
if FLAG:
ret = func(*args, **kwargs)
return ret

else:
username = input("username:")
password = input("password:")

if username == "boss" and password == "222":
FLAG = True
ret = func(*args,**kwargs)
return ret
else:
print("登陆失败")
return inner

@login
def shoplist_add():
print("增加一件物品")
@login
def shoplist_del():
print("删除一件物品")

shoplist_add()

猜你喜欢

转载自www.cnblogs.com/jly1/p/9592420.html