Функции Python возвращают 1, когда есть исключение - PullRequest
2 голосов
/ 06 августа 2011

Не могли бы вы объяснить, почему функция followin возвращает «1» в случае исключения?Какова цель возврата «1»?

def initialize():
    """
    Starting point for the program.
    """
    try:
        go = Car()
        print "Instance of Car created"
    except KeyboardInterrupt:
        return 1

Ответы [ 2 ]

4 голосов
/ 06 августа 2011

Это довольно распространенная идиома в C - возвращать ненулевое значение в случае ошибки.

Я догадываюсь, что человек, создавший эту функцию, привык к программированию на C и незнаком с обработкой исключений. Невозможно сказать без большего примера кода, но если я прав, то, вероятно, существует некоторая обработка ошибок, когда эта функция вызывается в случае, если эта функция возвращает 1 или ненулевое значение.

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

0 голосов
/ 06 августа 2011

По моему мнению, в этом нет необходимости, только если конструктор Car () занимает слишком много времени и вы хотите с ним справиться, как только initialize() вернется.

...