Python 學習筆記 裝飾器

2021-07-14 22:37:52 字數 1479 閱讀 5818

裝飾器也是乙個函式(巢狀),用來裝飾某個函式,來看下面的**

import time

deftime_count

(func):

def():

start = time.time()

func()

end = time.time()

print

'this funnction costs:',end - start

deftellhi

():print

'hello ervery body'

hi = time_count(tellhi)

hi()

'''使用語法糖@來裝飾函式

@time_count

def tellhi():

print 'hello ervery body'

tellhi()

'''

現在有乙個需求,有無數個fun(),都需要新增驗證,這樣就需要裝飾器來修飾來。

def

outer

(fun):

def(arg):

print

'驗證'

fun(arg)

@outer

deffunc1

(arg):

print

'func1',arg

@outer

deffunc2

(arg):

print

'func2',arg

@outer

deffunc3

(arg):

print

'func3',arg

func1('***x')

func2('***x')

func3('***x')

如過函式有返回引數

def

outer

(fun):

def(arg):

print

'驗證'

res = fun(arg)

return res

@outer

deffunc1

(arg):

print

'func1',arg

return

'return'

@outer

deffunc2

(arg):

print

'func2',arg

return

'return'

@outer

deffunc3

(arg):

print

'func3',arg

return

'return'

print func1('***x')

print func2('***x')

print func3('***x')

Python學習筆記 裝飾器

裝飾器 概念 是乙個閉包,把乙個函式當做引數返回乙個替代版的函式,本質上就是乙個返回函式的函式 簡單的裝飾器 def func1 print welcome to beijing def outer func def inner print func return inner f是函式func1的加...

Python裝飾器 學習筆記

python中一切皆物件,函式也可以當做引數傳遞 裝飾器接受函式當做引數,新增功能後返回乙個新函式的函式 python中裝飾器使用 import time deflog time func def log args,kwargs begin time.time res func args,kwarg...

python學習筆記 裝飾器

裝飾器 概念 是乙個閉包,把乙個函式當作引數返回乙個替代版的函式,本質上是乙個返回函式的函式 def outer f1 呼叫函式 def inner 建立裝飾後的函式值 pass return inner 返回乙個函式值 簡單的裝飾器 例子 def f 建立乙個函式f print 你好!def ou...