裝飾器函式精講

2022-08-12 01:06:18 字數 2693 閱讀 2334

閱讀目錄

舉例函式

import

time

deftimer(func):

definner():

start =time.time()

func()

print(time.time() -start)

return

inner

@timer

#==> func1 = timer(func1)

deffunc1():

time.sleep(0.1)

print('

in func1')

func1()

in

func1

0.10062646865844727

view code

裝飾器的本質:乙個閉包函式

裝飾器的功能:在不修改原函式及其呼叫方式的情況下對原函式功能進行擴充套件

裝飾乙個帶引數的函式

def

timer(func):

definner(a):

start =time.time()

func(a)

print(time.time() -start)

return

inner

@timer

deffunc1(a):

print

(a)func1(1)

1

0.0

view code

兩個函式,需要傳遞的引數不一樣

import

time

deftimer(func):

def inner(*args,**kwargs):

start =time.time()

re = func(*args,**kwargs)

print(time.time() -start)

return

re

return

inner

@timer

#==> func1 = timer(func1)

deffunc1(a,b):

print('

in func1')

@timer

#==> func2 = timer(func2)

deffunc2(a):

print('

in func2 and get a:%s

'%(a))

return

'fun2 over

'func1(

'aaaaaa

','bbbbbb')

print(func2('

aaaaaa

'))

ni shi sb

0.10007596015930176

infunc1

0.0in func2 and

get a:aaaaaa

0.0fun2 over

view code

裝飾器的固定格式:

def

timer(func):

def inner(*args,**kwargs):

'''執行函式之前要做的

'''re = func(*args,**kwargs)

'''執行函式之後要做的

'''return

re

return inner

帶引數的裝飾器

1 def

outer(flag):

3 deftimer(func):

5 def inner(*args,**kwargs):

8 ifflag:

print('''

執行函式之前要做的

''')

9 re = func(*args,**kwargs)

11 ifflag:

print('''

執行函式之後要做的

''')

12 return

re 6

return

inner

4 return

timer

2 @outer(false)

deffunc():

10 print(111)

7 func()

111
view code

多個裝飾器裝飾同乙個函式

def

definner():

print('')

func()

print('')

return

inner

def

definner():

print('')

func()

print('')

return

inner

deff():

print('

in f')

f()

c string函式精講

還有必要再重複一下c 字串和c字串轉換的問題,許多人會遇到這樣的問題,自己做的程式要呼叫別人的函式 類什麼的 比如資料庫連線函式connect char char 但別人的函式引數用的是char 形式的,而我們知道,c str data 返回的字元陣列由該字串擁有,所以是一種const char 要...

精講母函式

在數學中,某個序列的母函式 generating function,又稱生成函式 是一種形式冪級數,其每一項的係數可以提供關於這個序列的資訊。使用母函式解決問題的方法稱為母函式方法。母函式可分為很多種,包括普通母函式 指數母函式 l級數 貝爾級數和狄利克雷級數。對每個序列都可以寫出以上每個型別的乙個...

精講母函式

在數學中,某個序列的母函式 generating function,又稱生成函式 是一種形式冪級數,其每一項的係數可以提供關於這個序列的資訊。使用母函式解決問題的方法稱為母函式方法。母函式可分為很多種,包括普通母函式 指數母函式 l級數 貝爾級數和狄利克雷級數。對每個序列都可以寫出以上每個型別的乙個...