Имеет ли значение использование `if ... else` или`if ... return; {неявное еще}`?
Эти две модели дают одинаковые результаты. Имеет ли значение, какой из них используется? Зачем?
Я предпочитаю второе, оно имеет меньше отступов и выглядит мне чище, но я не видел, чтобы оно использовалось много (в тех местах, где я был). Я не хочу останавливаться на чем-то и использовать его повсюду, если по какой-то причине это не рекомендуется.
ЕСЛИ ЕЩЕ
if not packages:
help('download')
else:
for p in packages:
do_download(p)
verify_md5(p)
etc(p)
IF...RETURN; НЕПРАВИЛЬНОЕ остальное
if not packages:
help('download')
return
for p in packages:
do_download(p)
verify_md5(p)
etc(p)
2 ответа
Это стиль... Но я всегда предпочитаю использовать else
, Как вы четко указали в своем вопросе, заголовок не имеет else
делает это неявным, и я твердо верю в явный код, который легко читать и понимать.
Также из Дзэн Питона
Explicit is better than implicit.
Из дзен питона:
Квартира лучше, чем вложенная.
Таким образом, второй подход более Pythonic.
Лично я нахожу плоский код легче для чтения, чем вложенный код, а также менее подвержен ошибкам (например, else
утверждение, выстроенное неправильно, может быть трудно отладить). Конечно, это субъективные суждения.