# 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("张三")