2016-06-03 3 views
-2

Раньше я думал, что слышал, что использование обратной косой черты в конце строки кода Python для продолжения на следующей строке желательно избегать. Я помню, что мне говорили, что включение в круглые скобки вещей было предпочтительным.Многострочные операторы в Python

Я думаю, что я столкнулся, по крайней мере, за одним исключением, как указал мне в Where is my syntax error?, где ниже не является законным способом обработки многострочных заявлений:

(a = 
    b) 

Каковы правила предпочтительных способов обработки многострочные операторы в Python?

+1

После того, как вы решите отказаться от PEP8 ради написания в своем собственном стиле, то нет предпочтительных способов - как раз то, что ты, программист. Если я выполняю множество заданий, я склоняюсь к тому, чтобы иметь, что мои = операторы выстраиваются в очередь, используя пробелы. Это предпочтительнее? Да. Я предпочитаю это. Это PEP8? Ни за что. –

ответ

1

Что я помню, было сказано, что в круглых скобках было предположение о включении вещей.

Это правильно, но оно работает только там, где оно синтаксически разрешено.

Выражения могут быть пропущены, но таких команд, как присвоения, может и не быть.

Как вы видите,

(a = 
    b) 

не работает.

Вы можете попробовать

a = (
    b) 

однако, так как у нас есть правильный синтаксис.

2

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

x = func(AbsurdlyLongArgumentNameSeriouslyItsWayTooLong1, AbsurdlyLongArgumentNameSeriouslyItsWayTooLong2) 

может стать

x = func(AbsurdlyLongArgumentNameSeriouslyItsWayTooLong1, 
     AbsurdlyLongArgumentNameSeriouslyItsWayTooLong2) 

и

l = [importantthing1, importantthing2, importantthing3, importantthing4, importantthing5, importantthing6] 

может стать

l = [ 
    importantthing1, 
    importantthing2, 
    importantthing3, 
    importantthing4, 
    importantthing5, 
    importantthing6 
] 

Если длинная линия уже не включают в себя естественную точку, чтобы разбить его , вы можете ввести круглые скобки вокруг некоторого выражения в этой строке:

number = thing1 + thing2 * thing3/thing4 + thing5 * thing6 * thing7 * thing8 - thing9/thing10 + thing11 

может стать

number = (thing1 
      + thing2 * thing3/thing4 
      + thing5 * thing6 * thing7 * thing8 
      - thing9/thing10 
      + thing11) 
Смежные вопросы