def ato(db_stye):定义登入类型 #有参装饰器 最外面一个可以随意加值
def deco(func):
def wrapper(*args,**kwargs):
name=input("输入账号").strip()
pwd=input("请输入密码").strip()
if db_stye=="file":
print("文件")
if name=="taoge" and pwd=="123":
print("登录成功")
res=func(*args,**kwargs)
return res
else:
print("账号密码错误")
elif db_stye == "mysql":
print("数据库")
return wrapper
return deco
@ato(db_stye="file") # 等同余函数ato先运行 返回deco的函数内存地址==@deco ==index=wrapper(index)
def index(x,y): #ato传参db——stye deco传参func不可变 wrapper传参*args,**kwargs
print("chenggong{}{}".format(x,y))
return "奈斯"
res=index(1,2)
print(res)
原文:https://www.cnblogs.com/OUYANGjt/p/14545353.html