Подтвердить что ты не робот

В Python следует использовать else после возврата в блоке if?

Во-первых, я не смог найти ответ на этот вопрос в PEP 8. Это не значит, что там нет. Не стесняйтесь указать мне на это.

Какой стиль вы предпочитаете?

Первый:

if spam:
    # Do stuff.
    return eggs
else:
    # Maybe do other stuff.
    return parrots

или второй:

if spam:
    # Do stuff.
    return eggs
# Maybe do other stuff.
return parrots
4b9b3361

Ответ 1

Это зависит, если вы вернете попугаев, когда вы не вернете яйца, то первый будет более ясным. Но если вы пытаетесь поймать ошибку или что-то в этом роде, вторая лучше.

Ответ 2

Первый!

Явный лучше, чем неявный.

Ответ 3

Второй! Меньше - больше, и лучше.

Ответ 4

Второй. То же самое относится не только к return, но также к операторам break и continue. else и последующий отступ раздражают глаз и теряют пространство.

Ответ 5

Это не имеет большого значения. Если вам действительно нужны причины для выбора одного, используйте тот, который лучше всего объясняет причины кода. Первый, если оба случая как-то похожи или одинаково важны. Второй, если вы обычно возвращаете попугаев, но яйца - особый случай.

Ответ 6

Ни!

if spam:
    # Do Stuff
    result= eggs
else:
    # Maybe do other stuff
    result= parrots
return result

Ответ 7

Я думаю, что это зависит от части "делать вещи". Оба приемлемы.

Ответ 8

Я не знаю python, но я делаю:

return spam if eggs else parrots

Изменить. Я не заметил часть Do Do. В этом случае я бы создал другой метод или функцию (независимо от того, что она вызывается в python) для каждой ветки.