python裝飾器練習

2022-08-02 18:15:17 字數 2022 閱讀 5309

裝飾器的初步使用

需求: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...