Конвенция скобки Python [закрывается]

Я также рекомендовал бы смотреть copy модуль:

документация Python для копии

Это поможет Вам понять базовые проблемы и как использовать ее для выполнения собственной глубокой копии.

5
задан 3 revs, 3 users 100% 5 August 2012 в 20:24
поделиться

5 ответов

my_dictionary = {
    1: 'something',
    2: 'some other thing',
}
18
ответ дан 18 December 2019 в 05:21
поделиться

Я бы сказал, что стандарта почти нет.

Я видел два способа отступа:

Indent 1:
my_dictionary = {
    'uno': 'something',
    'number two': 'some other thing',
}

Indent 2:
my_dictionary = {'uno': 'something',
                 'number two': 'some other thing',
                 }

Я видел три, помещенных в крайнюю скобку:

End 1:
my_dictionary = {'uno': 'something',
                 'number two': 'some other thing',
}

End 2:
my_dictionary = {'uno': 'something',
                 'number two': 'some other thing',
                 }

End 3:
my_dictionary = {'uno': 'something',
                 'number two': 'some other thing',}

И иногда вы оправдываете значения:

my_dictionary = {'uno':        'something',
                 'number two': 'some other thing',
                 }

А иногда даже двоеточия:

my_dictionary = {'uno'        : 'something',
                 'number two' : 'some other thing',
                 }

Что выглядит странно.

И иногда у вас есть конечная запятая, а иногда нет:

my_dictionary = {'uno': 'something',
                 'number two': 'some other thing'}

А иногда вы вставляете все это в одну строку (если подходит).

my_dictionary = {'uno': 'something', 2: 'some other thing'}

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

amethodthattakesadict({'hey': 'this',
                       'looks': 'a',
                       'bit': 'shitty',
                      })

Я бы порекомендовал вам адаптироваться к стилю парня, написавшего код, который вы редактируете. Если это ваш код: делайте как хотите. : -)

13
ответ дан 18 December 2019 в 05:21
поделиться

О конечной скобке: я предпочитаю ее так:

my_dictionary = {
   'a': 'first value',
   'b': 'second',
   }

и я скажу вам почему: поскольку отступ в коде Python не имеет закрывающего токена, код имеет такой отступ: первая строка (if, while, def и т. д.) отличается от остальной части предложения, а все остальные строки имеют такой же отступ. Последняя строка предложения имеет отступ вместе со всем остальным. Следующая строка с таким же отступом, как и первая, является первой строкой следующего предложения, а не последней строкой этого.

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

8
ответ дан 18 December 2019 в 05:21
поделиться

Стиль отступа 1 , стиль окончания 3 (после ответа Леннарта):

   my_dictionary = {1: 'thing_one',
                    2: 'thing_two',
                    ...
                    n: 'thing_n'}

Это может быть самый цельный стиль отступа для заключенных в скобки объектов в коде Python, поскольку он очень похож на форматирование пробелов Python. Переход к отступам в стиле C в коде Python всегда казался мне немного неудобным, и я подозреваю, что он используется в основном потому, что программисты, привыкшие к C-подобным языкам (из-за их повсеместности), возможно, не сталкивались с различными стилями отступов.

Недостатком может быть то, что вставка в начале или в конце немного сложнее, чем в других стилях. Учитывая правильный редактор, который поддерживает написание кода Python, это не должно иметь большого значения.

Попробуйте этот стиль отступа в контексте и сравните его бок о бок с отступом в стиле C, а затем решите, какой из них выглядит более питоническим.

Может быть, это можно было бы назвать отступом в стиле lisp , потому что это способ, которым код lisp был отступ с столетий десятилетий, но это, например, , также часто используется в коде Smalltalk. В дискуссиях о расстановке скобок (в Lisp-подобных языках) вы часто читаете одну вещь: «Зачем давать им лишние строки? Они так важны?»

В конце концов, это в основном вкус вещь.

Учитывая правильный редактор, который поддерживает написание кода Python, это не должно иметь большого значения.

Попробуйте этот стиль отступа в контексте и сравните его бок о бок с отступом в стиле C, а затем решите, какой из них выглядит более питоническим.

Может быть, это можно было бы назвать отступом в стиле lisp , потому что это способ, которым код lisp был отступ с столетий десятилетий, но это, например, , также часто используется в коде Smalltalk. В дискуссиях о расстановке скобок (в языках типа Lisp) вы часто будете читать: «Зачем давать им лишние строки? Так ли они важны?»

В конце концов, это в основном вкус вещь.

С учетом подходящего редактора, который поддерживает написание кода Python, это не должно иметь большого значения.

Попробуйте этот стиль отступа в контексте и сравните его бок о бок с отступом в стиле C, а затем решите, какой из них выглядит более питоническим.

Может быть, это можно было бы назвать отступом в стиле lisp , потому что это способ, которым код lisp был отступ с столетий десятилетий, но это, например, , также часто используется в коде Smalltalk. В дискуссиях о расстановке скобок (в языках типа Lisp) вы часто будете читать: «Зачем давать им лишние строки? Так ли они важны?»

В конце концов, это в основном вкус вещь.

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

Возможно, это можно было бы назвать отступом в стиле Lisp , потому что это способ, которым lisp код имеет отступ с веков десятилетий, но он, например, также часто используется в коде Smalltalk. В дискуссиях о расстановке скобок (в Lisp-подобных языках) вы часто читаете одну вещь: «Зачем давать им лишние строки? Они так важны?»

В конце концов, это в основном вкус вещь.

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

Возможно, это можно было бы назвать отступом в стиле Lisp , потому что это способ, которым lisp Код имеет отступы с веков десятилетий, но, например, он также часто используется в коде Smalltalk. В дискуссиях о расстановке скобок (в языках типа Lisp) вы часто будете читать: «Зачем давать им лишние строки? Так ли они важны?»

В конце концов, это в основном вкус вещь.

потому что это способ, которым код lisp имеет отступ с веков десятилетий, но он, например, также часто используется в коде Smalltalk. В дискуссиях о расстановке скобок (в языках типа Lisp) вы часто будете читать: «Зачем давать им лишние строки? Так ли они важны?»

В конце концов, это в основном вкус вещь.

потому что это способ, которым код lisp имеет отступ с веков десятилетий, но он, например, также часто используется в коде Smalltalk. В дискуссиях о расстановке скобок (в языках типа Lisp) вы часто будете читать: «Зачем давать им лишние строки? Так ли они важны?»

В конце концов, это в основном вкус вещь.

4
ответ дан 18 December 2019 в 05:21
поделиться

Я делаю это, если словарь слишком велик для размещения в одной строке:

d = \
   {
   'a' : 'b',
   'c' : 'd'
   }
-3
ответ дан 18 December 2019 в 05:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: