**
装饰器
**
1、装饰器作用:
给函数增加额外属性。又不改变源代码和调用方式而存在。
本质就是一个函数
参数:是你要装饰的函数名(并非函数调用)
返回:是装饰完的函数名(也非函数调用)
作用:为已经存在的对象添加额外的功能
特点:不需要对对象做任何的代码上的变动
user = "zqyu"
psd =" 123456"
def auth(authtype):
def outwrapper(func):
def wrapper(*args,**kwargs):
if authtype == "local":
username = input("username:")
password = input("password")
if user == username and psd == password:
print("binggo")
func(*args,**kwargs)
else:
exit("eroor===")
elif authtype == "ges":
print(123456456789)
return wrapper
return outwrapper
@auth(authtype="local")
def login():
print("welcomt login page")
@auth(authtype="ges")
def home():
print("welcomt home page")
def bbs():
print("welcomt bbs page")
login()
home()
bbs()
结果:
username:zqyu
password 123456
binggo
welcomt login page
123456456789
welcomt bbs page