我试图了解Python装饰器。我通过的指南引用了这段代码:
from time import sleep
def sleep_decorator(function):
"""
Limits how fast the function is
called.
"""
def wrapper(*args, **kwargs):
sleep(2)
return function(*args, **kwargs)
return wrapper
@sleep_decorator
def print_number(num):
return num
print(print_number(222))
for num in range(1, 6):
print(print_number(num))
如果我正确理解这一点,@sleep_decorator
基本上会运行sleep_decorator(print_number(num))
。我努力理解的是打印功能和下面的循环如何适合整个事情。这些都是装饰者的一部分吗?或@sleep_decorator
重新定义print_number
是否始终贯穿sleep_decorator
函数?