Стандарты / лучшие практики кодирования Python

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

  • Извлечение текста с использованием PdfMiner и PyPDF2 Объединяет столбцы
  • Как преобразовать строку C (char array) в строку Python, когда в строке есть символы, отличные от ASCII?
  • Как использовать расширение в snakemake, когда некоторые особые комбинации подстановок не нужны?
  • Python gzip отказывается читать несжатый файл
  • Проверьте, содержит ли список только элемент x
  • Удалить нулевой элемент из массива mongo
  • PyGame в virtualenv на OS X с варкой?
  • Почему автоматические методы __init__ класса Python не запускаются автоматически?
  • 8 Solutions collect form web for “Стандарты / лучшие практики кодирования Python”

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

    Как уже упоминалось, вы следуете за PEP 8 для основного текста, а PEP 257 – для соглашений docstring

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

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

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

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

    Я придерживаюсь 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-х.

    Чтобы добавить список идиотских руководств бхадры:

    Оформить заявку Энтони Бакстера « Эффективное программирование на Python» (от OSON 2005).

    Выдержка:

     # dict's setdefault method turns this: if key in dictobj: dictobj[key].append(val) else: dictobj[key] = [val] # into this: dictobj.setdefault(key,[]).append(val) 

    PEP 8 хорош, единственное, что мне жаль, что это так тяжело, было священной войной «Табс-против-Спаса».

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

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

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

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

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

    Python - лучший язык программирования в мире.