login_status_jingdong =falselogin_status_weixin =false
defstart():
list =
list1 =
for i in
list:
(i, list[i])
select_num = input('
請輸入訪問網頁的編號[退出:q]>>')
if select_num == 'q'
:
return
exit()
elif
select_num.isdigit():
key =int(select_num)
list1[key]()
else
:
print('
請輸入有效值!')
def login(types = ""
):
defouters(a):
definner():
global
login_status_jingdong
global
login_status_weixin
if types == "
jingdong":
if login_status_jingdong is
false:
with open(
"jingdong
","r
",encoding="
utf8
") as f1:
d1={}
for i in
f1.readlines():
[key,valus] = i.split("="
) d1[key]=valus.strip()
(d1)
username = input("
輸入使用者名稱:
").strip() #
通過分隔符將字串轉為列表,並賦值給變數key和valus
password = input("
輸入密碼:
").strip() #
向字典中新增元素,這步就實現了字串轉為列表的功能
if username == d1["
username
"] and password == d1["
password"]:
login_status_jingdong =true
a()else
:
print("
賬號或密碼錯誤")
return
inner
return
outers
@login(
'jingdong')
defhome():
print('
welcome to home page')
@login(
'weixin')
deffinance():
print('
welcome to finance page')
@login(
'jingdong')
defbook():
print('
welcome to book page')
while
true:
start()
python用類實現裝飾器
利用 call 方法,裝飾器的執行流程 當新增裝飾器語法糖時,會把語法糖的變數名加 執行,並將被裝飾的函式名傳入。所以當類加 執行時,執行了 init 產生的物件就是被裝飾的函式,而物件 執行時觸發 call call方法下就能新增一些新的功能了 import time class timeit d...
Django 之裝飾器實現登入認證
def check login func 自定義登入驗證裝飾器 def warpper request,args,kwargs is login request.session.get is login false if is login func request,args,kwargs else ...
裝飾器實現使用者驗證登入
在實現使用者驗證的登入的時候可以使用裝飾器工廠產生裝飾器,讓裝飾器得到引數,從而判斷登入型別,並驗證使用者登入條件,實現如下 def login type type def outer f def inner if type qq name input 請輸入使用者名稱 psw input 請輸入密...