Files
Learn-Python-Programming-Th…/ch06/decorators/time.measure.deco1.py
T
adii1823 b6eb3ef8a7 ch06
2021-10-28 17:38:47 +05:30

19 lines
445 B
Python

# decorators/time.measure.deco1.py
from time import sleep, time
def f(sleep_time=0.1):
sleep(sleep_time)
def measure(func):
def wrapper(*args, **kwargs):
t = time()
func(*args, **kwargs)
print(func.__name__, 'took:', time() - t)
return wrapper
f = measure(f) # decoration point
f(0.2) # f took: 0.20372915267944336
f(sleep_time=0.3) # f took: 0.30455899238586426
print(f.__name__) # wrapper <- ouch!