Имеет ли значение использование `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 утверждение, выстроенное неправильно, может быть трудно отладить). Конечно, это субъективные суждения.

Другие вопросы по тегам