问个小白问题,假如写decorator的时候,调用functools里面的wraps,比如说
def timethis(func):
@wraps(func)
def wrapper(*args, **kwargs):
start = time.time()
result = func(*args, **kwargs)
end = time.time()
print(func.__name__, end - start)
return result
return wrapper
然后我创建时,
@timethis
def countdown(n):
while n > 0:
n--
请问,countdown有__wrapped__这个属性吗?
因为我看书上它是说用countdown.__wrapped__来unwrap decorator,但是我自己用的时候貌似没有这个属性,是不是要自己在第一个函数里面赋值?比如,wrapper.__wrapped__ = func 这样?
谢谢!
def timethis(func):
@wraps(func)
def wrapper(*args, **kwargs):
start = time.time()
result = func(*args, **kwargs)
end = time.time()
print(func.__name__, end - start)
return result
return wrapper
然后我创建时,
@timethis
def countdown(n):
while n > 0:
n--
请问,countdown有__wrapped__这个属性吗?
因为我看书上它是说用countdown.__wrapped__来unwrap decorator,但是我自己用的时候貌似没有这个属性,是不是要自己在第一个函数里面赋值?比如,wrapper.__wrapped__ = func 这样?
谢谢!