装饰器延伸及例题

# 1.装饰器接受可变的参数模型
# def zsqi(func):
# def zshs(*args,**kwargs):
# print("欢迎使用装饰器!")
# ret=func(*args,**kwargs)
# return ret
# return zshs
# @zsqi
# def test1(name,age):
# print("我的名字是【%s】,年龄【%s】" %(name,age))
# test1("张三",18)
#
# @zsqi
# def test2(name,age,xb):
# print("我的名字是【%s】,年龄【%s】,我是个【%s】" % (name, age,xb))
# test2("李四",19,"男孩")
# 2.装饰器运用的例题,模拟网上商城的验证功能。
name="aa"
passwd="123"
def yanzheng(func):
def jiance(*args,**kwargs):
username=input("请输入用户名:").strip()
userpasswd=input("请输入密码:").strip()
if username==name and userpasswd==passwd:
print("验证通过")
ret=func(*args,**kwargs)
return ret
else:
print("输入用户名或密码有误,请重新输入")
return jiance
@yanzheng
def index(name):
print("欢迎【%s】来到XX购物网站" %(name))
@yanzheng
def buycar(name):
print("欢迎【%s】购买的【%s】" % (name,["汽水,面包,白菜,鲜奶"]))
def buy():
print("准备好结账吧")

index("张三")
buycar("张三")
原文地址:https://www.cnblogs.com/Centwei/p/10516547.html