Странности с декоратором

Я хочу сделать декоратор, который будет ловить исключения и адекватно их протоколировать.

def logger(foo):
    try:
        print foo()
    except Exception as e:
        print e

@logger
def d():
    return 2/2

if __name__ == '__main__':
    d()

Вроде бы все правильно, но потом я запускаю его и получаю исключение вроде этого:

1

Traceback (most recent call last):

  File "log.py", line 14, in <module>

    d()

TypeError: 'NoneType' object is not callable

Почему интерпретатор говорит мне, что функция имеет тип None, но вызывает ее и выводит ответ?

15
задан Durwasa Chakraborty 8 March 2018 в 03:36
поделиться