В python вы обычно используете PEP 8 - Руководство по стилю для кода Python в качестве ваших стандартов/руководств по кодированию? Существуют ли какие-либо другие формализованные стандарты, которые вы предпочитаете?
Стандарты/передовые методы кодирования Python
Ответ 1
"В python вы обычно используете PEP 8 - Руководство по стилю для кода Python в качестве стандартов/руководств по кодированию? Существуют ли какие-либо другие формализованные стандарты, которые вы предпочитаете?"
Как уже упоминалось,
PEP 257 для соглашений docstring
Наряду с руководствами по стилю Python я предлагаю вам указать следующее:
Ответ 2
Я следую рекомендациям Python Idioms and Efficiency от Роба Найт. Я думаю, что они точно такие же, как PEP 8, но более синтетичны и основаны на примерах.
Если вы используете wxPython, вы также можете проверить Руководство по стилю для кода wxPython и Крисом Баркером.
Ответ 3
Я придерживаюсь PEP-8 очень близко.
Есть три специфические вещи, которые меня не могут переубедить в PEP-8.
-
Избегайте посторонних пробелов непосредственно в круглых скобках, скобках или фигурных скобках.
Рекомендуем:
spam(ham[1], {eggs: 2})
Я все равно:
spam( ham[ 1 ], { eggs: 2 } )
Почему? Более 30 лет укоренившейся привычки - сжимать() против имен функций или (в С) ключевых слов. Начиная с Fortran IV в 70-х.
-
Используйте пробелы вокруг арифметических операторов:
Рекомендуем:
x = x * 2 - 1
Я все равно:
x= x * 2 - 1
Почему? Gries 'Science of Programming предложила это как способ подчеркнуть связь между присваиванием и переменной, состояние которой изменяется.
Это не работает для множественного назначения или расширенного назначения, для чего я использую много пробелов.
-
Для имен функций, имен методов и имен переменных экземпляра
Рекомендуемый: строчный, со словами, разделенными символами подчеркивания, по мере необходимости, чтобы улучшить читаемость.
Я все равно это делаю: camelCase
Почему? 20+ лет укоренившейся привычки camelCase, начиная с Pascal в 80-х.
Ответ 4
Чтобы добавить в bhadra список идиоматических руководств:
Оформить презентацию Энтони Бакстера на Эффективное программирование на Python (от OSON 2005).
Выдержка:
# dict setdefault method turns this:
if key in dictobj:
dictobj[key].append(val)
else:
dictobj[key] = [val]
# into this:
dictobj.setdefault(key,[]).append(val)
Ответ 5
PEP 8 хорош, единственное, что мне жаль, что это так тяжело, - это священная война в Tabs-vs-Spaces.
В принципе, если вы начинаете проект на python, вам нужно выбрать "Tabs or Spaces", а затем стрелять всех преступников в поле зрения.
Ответ 6
Я следую ему очень строго. Единственный бог перед PEP-8 - это существующие базы кода.
Ответ 7
Да, я стараюсь следовать ему как можно ближе.
Я не следую никаким другим стандартам кодирования.
Ответ 8
Я следую PEP8, это отличный стиль кодирования.