装饰器函数问题
这个是我写的一个函数装饰器函数,用来计算代码执行时间的, 但是发现别人写的有def performacne_test函数里面再定义一个函数,这样做的意义何在,毕竟我这样也能实现了,求详细指导?import time
def performance_test(testfc):
start = time.perf_counter()
testfc()
end = time.perf_counter()
print(f'本次测试函数用时:{end - start}秒')
@performance_test
def forlook():
for i in range(50000000):
pass
forlook
附录上别人的写法
def my_decorator(func):
def wrapper(): ##干嘛要在这里再去定义一个函数呢?
start = time.perf_counter()
func()
end = time.perf_counter()
print(f'函数运行时间{end - start}')
return wrapper
def for_loop():
for i in range(50000000):
pass 这样可以让参数这样输入
my_decorator()() liuzhengyuan 发表于 2020-5-6 11:58
这样可以让参数这样输入
如果函数带参,能否详细一些说明呢谢谢, 从入门到富豪 发表于 2020-5-6 12:47
如果函数带参,能否详细一些说明呢谢谢,
再定义一个函数,是因为在调用装饰器的时候,会把函数作为一个参数传入其中进行计算
你这根本不是装饰器,直接把函数执行了 装饰器的本质是闭包,闭包是函数嵌套。你的貌似不算装饰器吧。
我也不知道说的对不对,欢迎指正
页:
[1]