Стиль кодирования - держать скобки на той же строке или новой строке? [закрытый]


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

Не могли бы вы сделать это:

return render(request, template,
              {
                'var1' : value1,
                'var2' : value2,
                'var3' : value3
               }
             )

Или вы предпочли бы сделать это:

return render 
(
    request, template,
    {
        'var1' : value1,
        'var2' : value2,
        'var3' : value3
    }
)

Или, пожалуйста, предложите свое собственное форматирование. Пожалуйста, также перечислите причины, по которым вы используете определенное форматирование и что не так с другим.

Спасибо

4 6

4 ответа:

Я бы, наверное, сделал:

return render(
    request, 
    template,
    {
        'var1' : value1,
        'var2' : value2,
        'var3' : value3
    }
)

Я бы держал скобку на той же линии, так что поиски render( работают. И потому, что я нахожу это более ясным. Но я бы поставил все аргументы на новые рельсы.

ОфициальныйPEP-8 Python предлагает первый вариант.

Я бы сделал:

vars = {
    'var1' : value1,
    'var2' : value2,
    'var3' : value3,
}
return render(request, template, vars)

Второй выглядит так, как будто он сбежал из программы C [#+]*. Продолжение линии обратной косой черты уродливо, склонно к проблемам с конечным пространством, и нет никакого оправдания, чтобы использовать его, когда у вас есть () или [], чтобы использовать.