关于装饰器的疑问?
# -*- coding: UTF-8 -*-
import time
def foo():
print 'in foo()'
# 定义一个计时器,传入一个,并返回另一个附加了计时功能的方法
def timeit(func):
# 定义一个内嵌的包装函数,给传入的函数加上计时功能的包装
def wrapper():
start = time.clock()
func()
end = time.clock()
print 'used:', end - start
# 将包装后的函数返回
return wrapper
foo = timeit(foo)
foo()
foo()
通过包装函数,实现了对foo函数的计时功能,
疑问1;通过包装函数后,原来的foo()函数改变了吗?
疑问2:如果后来还要调用原来定义的foo()函数怎么办?
疑问3:同样是实现计时功能,以下程序不是更方便?而且原foo()函数没改变?
def g(func):
start = time.clock()
func()
end = time.clock()
print 'used:', end - start
g(foo)