Изучаем PEP
8 по частям. Часть 4, Whitespace
in Expressions and Statements.
Тут говорится
о том, что:
Любимая мозоль
— лишние пробелы.
Пробелы не
нужны:
* Сразу
после/перед открывающей/закрывающей
скобкой.
* Перед запятой,
двоеточием, точкой-с-запятой.
* Перед
открывающей скобкой в списке аргументов
или вызове функции, в индексах.
* Больше одного
пробела вокруг операторов.
Еще рекомендации
по пробелам.
Всегда ставьте
пробелы вокруг операторов
assignment (=), augmented assignment (+=, -= etc.), comparisons (==, <, >, !=, <>, <=, >=, in, not in, is, is not), Booleans (and, or, not)
Если в одном
выражении используются операторы с
разным приоритетом, окружайте операторы
с низким приоритетом пробелами, оставляя
без пробелов операторы с высоким
приоритетом
hypot2 = x*x + y*y
Не ставьте
пробелы вокруг «=» когда этот символ
используется для указания именных
аргументов или дефолтных значений
def complex(real, imag=0.0): return magic(r=real, i=imag)
Составные
выражения, когда на одну строку пишется
несколько выражений, не приветствуются
в общем случае.
По моему
скромному мнению и, согласно утверждению
«A Foolish Consistency is the Hobgoblin of Little Minds», от
некоторых из этих рекомендаций иногда
лучше отступать с целью повышения
читаемости кода.
В частности,
когда подряд идет несколько скобок,
можно отбить пробелом выразительную
часть от невыразительной.
Или онлайнеры
— составные выражения. Иногда глазу
приятнее с ними, чем без них.
Довольно
спорный момент — выравнивание серии
присваиваний
x = 1 y = 2 long_variable = 3
тут 50/50, глазу приятнее, но практичность
ниже плинтуса, что выравнивает шансы.
original post http://vasnake.blogspot.com/2014/09/pep-8-whitespace-in-expressions-and.html
Вот как раз правила с пробелами я часто нарушаю намеренно. Мне кажется, что перед открывающейся скобкой пробелы нужны - так нагляднее, если у функции длинный список переменных (если функция не принимает никаких параметров, пробел обычно не ставлю). То же самое касается и пробелов до/после = в параметрах функций. Без пробелов все сливается в одну кучу.
ОтветитьУдалитьОчень часто все эти правила фиксируют вкусовые пристрастия автора правил. Я такое называю "вкусовщина". На вкус и цвет все фломастеры разные.
УдалитьС другой стороны, когда проект большой и работает целая команда, лучше руководствоваться правилами, даже если они не совпадают с личным вкусом.
Как в армии говорят: безобразно, зато однообразно :)
А если работаешь один или команда под тобой - начхать на правила.
Насчет функции с открывающейся скобкой и пробелом перед ней - вот тут, я думаю, вкус побоку. Если есть пробел, можно оконфузиться, перепутав функцию с каким-нибудь tuple.