py之裝飾器練習(使用者登入)

2021-09-27 06:49:26 字數 938 閱讀 4546

「」"

[『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 請輸入密...