python基礎 裝飾器

2022-02-20 13:02:41 字數 3232 閱讀 9413

一、裝飾器定義

器即函式

裝飾即修飾,意指為其他函式新增新功能

裝飾器定義:本質就是函式,功能是為其他函式新增新功能

二、裝飾器需遵循的原則

1.不修改被裝飾函式的源**(開放封閉原則)

2.為被裝飾函式新增新功能後,不修改被修飾函式的呼叫方式

三、實現裝飾器知識儲備

裝飾器=高階函式+函式巢狀+閉包

四、無參裝飾器

1

#裝飾器23

import time #呼叫時間模組(系統自帶的time模組)

4def timmer(func):56

#print(func)

7 start_time=time.time()

8func()

9 stop_time=time.time()

10 print('

run time is %s

' %(stop_time -start_time))

11return

1213 @timmer #index=timmer(index)

14def index():

15 time.sleep(1

)16 print('

welcome to oldboy')

無參裝飾器

1import time #呼叫時間模組(系統自帶的time模組)

2def timmer(func):

4 start_time=time.time()

5 func(*args,**kwargs)

6 stop_time=time.time()

7 print('

run time is %s

' %(stop_time -start_time))

8return910

@timmer

11def home(name):

12 time.sleep(2

)13 print('

welcome to %s home page

'%name)

1415

@timmer

16def auth(name,password):

17print(name,password)

1819

@timmer

20def tell():

21 print('

------------------')

2223 home('

dragon')

24 auth('

egon

','123')

25 tell()

無參裝飾器1

1

import time #呼叫時間模組(系統自帶的time模組)

2def timmer(func):

4 start_time=time.time()

5 res=func(*args,**kwargs)

6 stop_time=time.time()

7 print('

run time is %s

' %(stop_time -start_time))

8return

res9

return

1011

@timmer

12def my_max(x,y):

13 print('

my_max function')

14 res=x if x > y elsey15

return

res16

17 res=my_max(1,2

)18 print('

*****>

',res)

無參裝飾器2

五、有參裝飾器

1

def auth2(auth_type):

2def auth(func):

3#print(auth_type)

5if auth_type == '

file':

6 name = input ('

username: ')

7 password = input('

password: ')

8if name == '

egon

' and password == '

123'

:9 print('

auth successfull')

10 res=func(*args,**kwargs)

11return

res12

else

:13 print('

auth error')

14 elif auth_type == '

sql'

:15 print('

還他媽不會玩')

16return

17return

auth

1819 @auth2(auth_type='

file

') #index=auth(index) #這是通過本地檔案方式讀取

20def index():

21 print('

welcome to index page')

22index()

2324

25 @auth2(auth_type='

sql') #index=auth(index) #這是通過資料庫方式讀取

26def index():

27 print('

welcome to index page')

28 index()

有參裝飾器

python基礎 裝飾器

裝飾器本質就是函式,功能是為其他函式新增附加功能。原則 不修改被修飾函式的源 不修改被修飾函式的呼叫方式 裝飾器的知識儲備 裝飾器 高階函式 函式巢狀 閉包 import time 定義乙個裝飾器計算函式執行時間 def timer func start time time.time res fun...

python基礎 裝飾器

裝飾器形成的過程 最簡單的裝飾器 有返回值的 有乙個引數 萬能引數 裝飾器的作用 原則 開放封閉原則 語法糖 裝飾器的固定模式 import time print time.time 獲取當前時間 time.sleep 10 讓程式在執行到這個位置的時候停一會兒 def timmer f 裝飾器函式...

Python基礎 裝飾器

裝飾器是程式開發中經常會用到的乙個功能,程式開發的基礎知識,用好了裝飾器,開發效率如虎添翼,所以這也是python面試中必問的問題,但對於好多初次接觸這個知識的人來講,這個功能有點繞,這個都不會,別跟人家說你會python,看了下面的文章,保證你學會裝飾器。裝飾器 decorator 首先我們需要知...