Python 帶引數的使用者驗證功能裝飾器

2021-08-15 15:27:22 字數 1379 閱讀 5950

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...