У меня есть демонстрационный код декоратора. Если я выполняю его без явного вызова функции greet
, он выполняет инструкцию print
внутри функции декоратора и выводит Inside decorator
.
Я не могу понять это поведение декоратора. Как вызывается time_decorator
, даже если я не вызывал функцию greet
?
Я использую Python 3.
def time_decorator(original_func):
print('Inside decorator')
def wrapper(*args, **kwargs):
start = time.clock()
result = original_func(*args, **kwargs)
end = time.clock()
print('{0} is executed in {1}'.format(original_func.__name__, end-start))
return result
return wrapper
@time_decorator
def greet(name):
return 'Hello {0}'.format(name)