装饰器实现 ----简单验证功能
def auth_func (func): def wrapper (*args,**kwargs): username = input('用户名:').strip() #去除两边空格 passwd = input('密码:').strip() if username == 'haha' and passwd == '123' : res=func(*args,**kwargs) return res else: print("用户名密码错误") return wrapper @auth_func def index (): print('欢迎来imebo') @auth_func def home (name): print('%s欢迎回家'%(name)) @auth_func def shopping_car (name): print('%s购物车里有 [%s,%s]' %(name,'衣服','娃娃')) index() home('zhink') shopping_car('zhink')
装饰器先写框架,再加里面的内容。
用全局变量模拟用户状态(session)
user_dic = {'username':None,'login':False} #定议全局变量,用户名和状态(True和false判断)
def auth_func (func):
def wrapper (*args,**kwargs):
if user_dic['username'] and ['login'] : #先判断用户是否登录,如果登录直接运行函数并返回值
res = func(*args,**kwargs)
return res
username = input('用户名:').strip()
passwd = input('密码:').strip()
if username == 'haha' and passwd == '123' : # 如果没有登录,输入后把当前状态保存,修改全局变量
user_dic['username']=username
user_dic['login']=True
res=func(*args,**kwargs)
return res
else:
print("用户名密码错误")
return wrapper
@auth_func
def index ():
print('欢迎来imebo')
@auth_func
def home (name):
print('%s欢迎回家'%(name))
@auth_func
def shopping_car (name):
print('%s购物车里有 [%s,%s]' %(name,'衣服','娃娃'))
index()
home('zhink')
shopping_car('zhink')

浙公网安备 33010602011771号