Обнаружил странное поведение в python3.5.
Пишем тупой код с декоратором:
def foo(f):
print("foo")
f()
@foo
def bar():
print("bar")
И теперь при попытке запустить скрипт, содержащий только эти строки, он вызывает декорируемую функцию, а если попытаться сделать еще что-то такое:
print (bar)
То сначала вновь вызовется декорируемая функия, а после выведется None.
Мне казалось, что декораторы - это синтаксический сахар в python и по идее должен только при вызове функции bar подменять этот вызов на foo(bar). Я что-то не правильно понимаю, или это косяк в python?