python學習 43 裝飾器 函式閉包2

2022-08-28 17:06:26 字數 2080 閱讀 9126

1.登陸賬號

user_dic =

defauth_func(func):

if user_dic['

username

'] and user_dic['

login']:

res = func(*args,**kwargs)

return

res username = input('

賬號:'

).strip()

passwd = input('

密碼:'

).strip()

if username == '

abcd

'and passwd == '

123456':

user_dic[

'username

'] =username

user_dic[

'login

'] =true

print('

登陸成功!')

res=func(*args,**kwargs)

return

res

else

:

print('

使用者名稱或密碼錯誤')

return

@auth_func

defindex():

print('')

@auth_func

defhome(name):

print('

歡迎%s回家

' %name)

index()

home('小明

')

執行結果:

賬號:abcd

密碼:123456登陸成功!

歡迎小明回家

process finished with exit code 0

2.檢測已有賬號登陸

user_list=[,,,

]user_dac = #

獲取剛開始登陸之前的狀態

defauth_func(func):

if user_dac['

username

'] and user_dac['

login

']: #

獲取剛開始登陸之前的狀態,是否已登入

res = func(*args,**kwargs)

return

res username = input('

賬號:'

).strip()

passwd = input('

密碼:'

).strip()

for user_dic in

user_list:

if username == user_dic['

name

'] and passwd == user_dic['

passwd']:

user_dac[

'username

'] =username

user_dac[

'login

'] =true

print('

登陸成功!')

res=func(*args,**kwargs)

return

res

else

:

print('

使用者名稱或密碼錯誤')

return

@auth_func

defindex():

print('')

@auth_func

defhome(name):

print('

歡迎%s回家

' %name)

index()

home('sb

')

執行結果:

賬號:abd

密碼:123登陸成功!

歡迎sb回家

process finished with exit code 0

Python學習 函式裝飾器

裝飾器 定義 本質是函式,裝飾其它函式,就是為其它函式新增附件功能。不能修改被裝飾函式的源 不能修改被裝飾函式的呼叫方式。高階函式 函式巢狀 import time deftime func def args,kwargs start time.time func end time.time pri...

Python基礎學習 函式裝飾器

裝飾器是python中非常實用的函式表達法,盡頭我們不講裝飾器原理,只講怎麼應用。裝飾器原理涉及物件導向以及函式本身也可以作為乙個引數被傳遞,原理比較簡單,但由於迴圈巢狀初學者難以理解。既然難以理解,那就先學會怎麼用,有了經驗,理解起來就相對容易了。首先我們要明白,裝飾器內函式是先於被裝飾函式執行的...

python學習日記(函式 裝飾器)

前提,我有一段 乙個函式 import time defrun time time.sleep 0.1 print 我曾踏足山巔 需求1 現在,我想計算這段 的執行時間。我可以這樣做 import time defrun time start time time.time time.sleep 0....