「」"
[『root』,『admin』,『redhat』]
id id+vip
多個裝飾器的應用場景:
會採用多個裝飾器先驗證是否登陸成功 再驗證許可權是否足夠
「」"
import functools
import inspect
def is_login(fun):
@functools.wraps(fun)
if args[0] in login_session:
temp = fun(*args, **kwargs)
return temp
else:
print('error:%s 沒有登陸成功' % (args[0]))
def is_admin(fun):
@functools.wraps(fun)
# nspect.getcallargs會返回乙個字典
# key:形參 value:對應的實參
inspect_res = inspect.getcallargs(fun, *args, **kwargs)
print('inspect的返回值是:%s' % (inspect_res))
if inspect_res.get('name') == 'root':
temp = fun(*args, **kwargs)
return temp
else:
print('not root user,no permisson add user')
login_session = ['root', 'admin', 'redhat']
@is_login
@is_admin
def add_user(name):
print(『add_user~~』)
add_user(『root』)
python裝飾器之登入練習(老男孩)
jdlogin status false wxlogin status false key 0 def logger auth type def login f global jdlogin status 獲取全域性變數來實現該變數的賦值修改 global wxlogin status if jdl...
Python練習 使用者登入(三次機會)
練習 使用者登入 三次機會 平台 python123.io 教師 嵩天 給使用者三次輸入使用者名稱和密碼的機會,要求如下 1 如輸入第一行輸入使用者名為 kate 第二行輸入密碼為 666666 輸出 登入成功!退出程式 2 當一共有3次輸入使用者名稱或密碼不正確輸出 3次使用者名稱或者密碼均有誤!...
裝飾器實現使用者驗證登入
在實現使用者驗證的登入的時候可以使用裝飾器工廠產生裝飾器,讓裝飾器得到引數,從而判斷登入型別,並驗證使用者登入條件,實現如下 def login type type def outer f def inner if type qq name input 請輸入使用者名稱 psw input 請輸入密...