user_list = [,,
,]# 初始狀態,用來儲存登陸的使用者,
client_dic =
# 新增新功能
def auth(auth_type='filedb'):
def auth_func(func):
print(auth_type)
if auth_type == 'fildb':
# 引數檢查,判斷是否有使用者登入,如果有,不用驗證,直接執行函式的功能
if client_dic['username'] and client_dic['login']:
res = func(*args, **kwargs)
return res
# 輸入使用者名稱和密碼
username = input('使用者名稱:').strip()
passwd = input('passwd:').strip()
# 對比列表,檢查使用者名稱和密碼是否正確
for user_dic in user_list:
if username == user_dic['name'] and passwd == user_dic['passwd']:
client_dic['username'] = user_dic['name']
client_dic['login'] = true
res = func(*args, **kwargs)
return res
else:
print('使用者名稱或者密碼錯誤!')
elif auth_type == 'pass':
print('不知道什麼驗證方式')
res = func(*args, **kwargs)
return res
else:
print('一臉蒙蔽的驗證方式')
res = func(*args, **kwargs)
return res
return auth_func
@auth(auth_type='filedb')
def index():
print("歡迎來到主頁")
@auth(auth_type='user')
def home(name):
print("歡迎回家:%s" % name)
@auth(auth_type='pass')
def shoppping_car():
print('購物車裡有[%s,%s,%s]' % ('奶茶', '妹妹', '娃娃'))
print(client_dic)
index()
print(client_dic)
home('root')
Python實現帶引數的使用者驗證功能裝飾器示例
user lifxgigxdist 初始狀態,用來儲存登陸的使用者,client dic 新增新功能 def auth auth type filedb def auth func func def wrapper args,kwargs print auth typwww.cppcns.come ...
python之unittest驗證函式功能
一 待驗證指令碼 首先,有如下三個指令碼,分別對應三個函式 分別匯入模組行,如下 1 from fuction1 import fu12 from fuction2 import fu23 from fuction3 import fu3 執行指令碼檢視結果 1 x fu1 10 2print x ...
Python 指令碼帶引數
如果想對python指令碼傳引數,python中對應的argc,ar c語言的命令列引數 是什麼呢?需要模組 sys 引數個數 len sys.ar 指令碼名 sys.ar 0 引數1 sys.ar 1 引數2 sys.ar 2 test.py import sys print 指令碼名 sys.a...