Стандарты/передовые методы кодирования Python

В python вы обычно используете PEP 8 - Руководство по стилю для кода Python в качестве ваших стандартов/руководств по кодированию? Существуют ли какие-либо другие формализованные стандарты, которые вы предпочитаете?

Ответ 1

"В python вы обычно используете PEP 8 - Руководство по стилю для кода Python в качестве стандартов/руководств по кодированию? Существуют ли какие-либо другие формализованные стандарты, которые вы предпочитаете?"

Как уже упоминалось,

PEP 257 для соглашений docstring

Наряду с руководствами по стилю Python я предлагаю вам указать следующее:

Ответ 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, это отличный стиль кодирования.