裝飾器的初步使用
需求:1.登入京東
2.有3個頁面home、finance、book
3.檢測有沒有登入,沒登入呼叫登入介面
4.home使用京東自己的登入
auth_type='jingdong'
def login(auth_type, flag=false):京東登入deflogged(f):
def hadlog(*x, **y):
f(*x, **y)
return
hadlog
defchoice(f):
def jd(*x, **y):
with open(
'jingdong
', '
r', encoding='
utf8
') as f1:
dic =eval(f1.read())
username = dic['
username']
pwd = dic['
pwd'
]
while
true:
useid = input('
請輸入使用者名稱:')
usepwd = input('
請輸入密碼:')
if useid == username and usepwd ==pwd:
print('
通過京東賬號登入成功!')
break
else
:
print('
使用者名稱或密碼錯誤,登陸失敗!')
flag =true
f(*x, **y)
def wx(*x, **y):
with open(
'weixin
', '
r', encoding='
utf8
') as f1:
dic =eval(f1.read())
username = dic['
username']
pwd = dic['
pwd'
]
while
true:
useid = input('
請輸入使用者名稱:')
usepwd = input('
請輸入密碼:')
if useid == username and usepwd ==pwd:
print('')
break
else
:
print('
使用者名稱或密碼錯誤,登陸失敗!')
flag =true
f(*x, **y)
if auth_type == 'jd'
:
return
jd
elif auth_type == 'wx'
:
return
wx
else
:
pass
#可增加其他登入方式
if flag ==true:
return
logged
if flag ==false:
return
choice
@login('jd
')defhome():
print('
welcome to home page')
@login('wx
')deffinance():
print('
welcome to finance page')
@login('wx
')defbook():
print('
welcome to book page')
home()
python 裝飾器練習
import time import functools def add log fun functools.wraps fun start time time.time res fun args,kwargs end time time.time fun.name end time start t...
Python裝飾器練習
看廖下廖大的裝飾器的文件 寫了練習 設計乙個decorator,它可作用於任何函式上,並列印該函式的執行時間 coding utf 8 import time,functools def metric fn time1 time.time ret fn args,kw time2 time.time...
python裝飾器練習
判斷是否是root使用者 def hahaha fc def woshinima args if args 0 root args是列表,儘管只有乙個元素,但是必須是 0 return fc args print error return woshinima hahaha def add stude...