闭包closures
函数套函数
import time
def hl(func):
def wrap():
begin = int(time.time())
print begin
func()
end = int(time.time())
print end
print "cost:",end - begin
return end - begin
return wrap
def t():
time.sleep(1)
hl(t)()
装饰器
函数执行前扩展一些函数、执行后扩展一些函数
import time
def hl(func):
def wrap():
begin = int(time.time())
print begin
func()
end = int(time.time())
print end
print "cost:",end - begin
return end - begin
return wrap
@hl
def t():
time.sleep(1)
t()
##############################
def mb(func):
def wrap():
return '<b>' + func() + '</b>'
return wrap
def mi(func):
def wrap():
return '<i>' + func() + '</i>'
return wrap
@mb
@mi
def hello():
return('hello')
print(hello())