user_lifxgigxdist = [
, ,
, ]# 初始狀態,用來儲存登陸的使用者,
client_dic =
# 新增新功能
def auth(auth_type='filedb'):
def auth_func(func):
def wrapper(*args, **kwargs):
print(auth_typwww.cppcns.come)
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[www.cppcns.com'passwd']:
client_dic['username'] = user_dic['name']
client_dic['login'] = true
res = func(*args,fxgigxdi **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 wrapper
return auth_func
@auth(auth_type='filedb')
def index():
print("歡迎來到主頁")
@auth(auth_type='user')
def home(name):
print("歡迎回家:%s" % name)
@au程式設計客棧th(auth_type='pass')
def shoppping_car():
print('購物車裡有[%s,%s,%s]' % ('奶茶', '妹妹', '娃娃'))
print(client_dic)
index()
print(client_dic)
home('root')
執行結果:
filedb
一臉蒙蔽的驗證方式
歡迎來到主頁
user
一臉蒙蔽的驗證方式
歡迎回家:root
python 實現帶引數的裝飾器
coding utf8 author bluesli defbefore request,kwarg print before defafter request,kwarg print after deffilter before fun,after fun defouter main fun de...
Python 帶引數的使用者驗證功能裝飾器
user list 初始狀態,用來儲存登陸的使用者,client dic 新增新功能 def auth auth type filedb def auth func func print auth type if auth type fildb 引數檢查,判斷是否有使用者登入,如果有,不用驗證,直接...
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...