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

116

В python вы обычно используете PEP 8 - Style Guide for Python Code в качестве стандартов / рекомендаций по кодированию? Какие другие формализованные стандарты вы предпочитаете?

Kozyarchuk
источник
1
// Запрос «предпочтений аудитории» сначала может показаться безобидным, но он превращает stackoverflow в механизм опроса, своего рода извращенную демократию немногих против многих. "Есть ли другие ________, которые вы предпочитаете?" буквально спрашивает их о предпочтении, а не факт.
Натан Басанезе,

Ответы:

150

«В Python вы обычно используете PEP 8 - Руководство по стилю кода Python в качестве стандартов / рекомендаций по кодированию? Есть ли другие формализованные стандарты, которые вы предпочитаете?»

Как уже упоминалось, вы следуете PEP 8 для основного текста и PEP 257 для соглашений о строках документации.

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

  1. Код как Pythonista: идиоматический Python
  2. Общие ошибки и бородавки
  3. Как не писать код на Python
  4. Python gotcha
бхадра
источник
14

Я следую рекомендациям Роба Найта в Python идиомах и эффективности . Я думаю, что они точно такие же, как PEP 8, но более синтетические и основанные на примерах.

Если вы используете wxPython, вы также можете проверить Руководство по стилю для кода wxPython , написанное Крисом Баркером.

Mapad
источник
8

Я очень строго придерживаюсь PEP-8.

Есть три конкретные вещи, которые я не побеспокоюсь изменить на PEP-8.

  • Избегайте лишних пробелов сразу внутри скобок, скобок или фигурных скобок.

    Похожие: spam(ham[1], {eggs: 2})

    Я все равно так делаю: spam( ham[ 1 ], { eggs: 2 } )

    Зачем? Более 30 лет укоренившейся привычки противостоять snuggling () именам функций или (в C) ключевым словам операторов. Начиная с Fortran IV в 70-х гг.

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

    Похожие: x = x * 2 - 1

    Я все равно так делаю: x= x * 2 - 1

    Зачем? Грис «Наука программирования» предложил это как способ подчеркнуть связь между присваиванием и переменной, состояние которой изменяется.

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

  • Для имен функций, имен методов и имен переменных экземпляра

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

    Я все равно так делаю: camelCase

    Зачем? Более 20 лет укоренившейся привычки к camelCase, начиная с Pascal в 80-х.

С. Лотт
источник
1
Это отличный контент! codingstyleguide.com или codereview.stackexchange.com было бы хорошим местом, чтобы получить эти отличные рекомендации.
Помпейо,
5

PEP 8 хорош, единственное, что мне хотелось бы усложнить, - это священная война Tabs-vs-Spaces.

В основном, если вы начинаете проект на python, вам нужно выбрать Tabs или Spaces, а затем расстрелять всех нарушителей на месте.

Райан
источник
4
Табуляция или пробелы? Из PEP8: Пробелы - предпочтительный метод отступа. Вкладки следует использовать исключительно для согласования с кодом, который уже имеет отступ с вкладками.
The Demz 08
//, PEP8 довольно ясно показывает, что пробелы являются предпочтительным методом отступа, Райан. Downvoted. Но не хотите ли обновить ответ?
Натан Басанезе,
4

Я слежу за этим очень строго. Единственный бог до PEP-8 - существующие кодовые базы.

Алекс Гейнор
источник
1
и я хотел бы отметить, что PEP-8 даже принимает во внимание существующие кодовые базы.
Джон Малдер
2

Да, я стараюсь как можно внимательнее следить за этим.

Я не следую никаким другим стандартам кодирования.

Oli
источник
1

Я следую PEP8, это отличный стиль программирования.

forhappy
источник