Готовый перевод Style Guide for Python Code: Whitespace in Expressions and Statements

Любимые мозоли

Избегайте излишних пробелов в следующих ситуациях:

Прямо внутри круглых, квадратных или фигурных скобок:

Правильно: spam(ham[1], {eggs: 2})
Неправильно: spam( ham[ 1 ], { eggs: 2 } )

Перед запятой, точкой с запятой, или двоеточием:

Правильно: if x == 4: print x, y; x, y = y, x
Неправильно: if x == 4 : print x , y ; x , y = y , x

Прямо перед от открывающей скобкой, которая начинает список аргументов вызова функции:

Правильно: spam(1)
Неправильно: spam (1)

Прямо перед открывающей скобкой, которая начинают индексирование или разбиение:

Правильно: dict['key'] = list[index]
Неправильно: dict ['key'] = list [index]

Более одного пробела вокруг одного оператора присваивания (или другого оператора), чтобы выравнить его с другим.

Правильно:

x = 1
y = 2
long_variable = 3

Неправильно:

x = 1
y = 2
long_variable = 3

Другие рекомендации

Всегда окружайте эти двоичные операторы одним пробелом с каждой стороны:
присваивания(=), расширенного присваивания(+=, -= и так далее), сравнения (==,<,>, !=, <>, <=, >=, in, not in, is, is not), логические (and, or, not).

Используйте пробелы вокруг арифметических операторов:

Правильно:

i = i + 1
submitted += 1
x = x * 2 - 1
hypot2 = x * x + y * y
c = (a + b) * (a - b)

Неправильно:

i=i+1
submitted +=1
x = x*2 - 1
hypot2 = x*x + y*y
c = (a+b) * (a-b)

Не используйте пробелы вокруг знака '=', когда он нужен для указания ключевого слова аргумента или базового значения параметра.

Правильно:

def complex(real, imag=0.0):
return magic(r=real, i=imag)

Неправильно:

def complex(real, imag = 0.0):
return magic(r = real, i = imag)

Составные выражения (много выражений на одной строчке) обычно обескураживают.

Правильно:

if foo == 'blah':
do_blah_thing()
do_one()
do_two()
do_three()

Но не:

if foo == 'blah': do_blah_thing()
do_one(); do_two(); do_three()

Если иногда и ничего, что условные операторы if/for/while вместе с небольшим телом программы находятся на одной линии, никогда не делайте так для мультивыражений операторов. Также остерегайтесь складывать такие длинные строчки!

Не делайте так:

if foo == 'blah': do_blah_thing()
for x in lst: total += x
while t < 10: t = delay()

И совсем не надо делать так:

if foo == 'blah': do_blah_thing()
else: do_non_blah_thing()

try: something()
finally: cleanup()

do_one(); do_two(); do_three(long, argument,
list, like, this)

if foo == 'blah': one(); two(); three()

Переведено на Нотабеноиде
http://notabenoid.org/book/1336/5348

Переводчики: wuffur, svartalf

Настройки

Готово:

100.00% КП = 1.0