python中裝飾器之有參裝飾器(三)

2022-04-11 15:25:51 字數 787 閱讀 1235

在呼叫無參裝飾器時,不需要在外層傳遞引數。

適用於例如:

- 為某個函式增加統計執行時間功能

- 為某個函式執行前增加登入認證功能

在呼叫有參裝飾器時,對其傳入乙個或多個引數。

適用於例如:

- 驗證使用者型別

def

user_auth(user_group):

def

def inner(*args, **kwargs):

if user_group == '

svip':

print('

dear svip')

res = func(*args, **kwargs)

return

res

elif user_group == '

general':

res = func(*args, **kwargs)

return

res

else

:

print('

please login first!')

login()

return

inner

return

@user_auth(user_group='

svip')

defwelcome():

print('

welcome to the index')

welcome()

python之有參裝飾器

由於語法糖 的限制,outter函式只能有乙個引數,並且該引數只用來接收被裝飾物件的記憶體位址 def outter func func 函式的記憶體位址 res func args,kwargs return res outter outter outter index def index x,y...

python函式之有參裝飾器

一 為什麼要有有參裝飾器?來看之前的無參裝飾器 無參裝飾器 defoutter func start time.time res func args,kwargs 我們需要乙個變數接受函式的返回值 end time.time print run time is s end start return ...

python中裝飾器

對修改是封閉的,對擴充套件是開放的 import time def f1 print time.time print this is a function.def f2 print this is a function.print time.time f1 def print current tim...