【发布时间】:2019-04-07 18:07:47
【问题描述】:
我对 python 非常陌生,我刚刚遇到了装饰器。我仍然对他们有点困惑,但我正在学习
我试图制作一个装饰器,告诉我我的函数需要多长时间才能完成,但显然当我尝试在一个应该返回某些内容的函数上使用它时,它只返回“None”
我只看到了几个关于这个问题的问题,但没有一个真正有帮助
这是我的代码
import time
def time_it(func): # Here i make a simple decorator function that should time my decorated function
def wrapper(*args, **kwargs):
t1 = time.time()
func(*args)
t2 = time.time()
total = t2 - t1
print("The function '" + func.__name__ + "' took", str(total)[0:5], "seconds to complete")
return wrapper
@time_it
def square(nums): # I make a function that squares every number in a list
new_list = []
for n in nums:
new_list.append(n ** 2)
return new_list
lis = [f for f in range(200000)] # i make a list with a range of 200000
print(square(lis))
抱歉有任何语法错误,我不是以英语为母语的人
【问题讨论】:
-
是的,因为
wrapper总是返回None。
标签: python python-3.x decorator