裝飾器也是乙個函式(巢狀),用來裝飾某個函式,來看下面的**
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...