Стандарти / найкращі практики кодування Python [закрито]


116

Як правило, в python ви використовуєте PEP 8 - посібник зі стилів для Python Code як ваших стандартів / настанов кодування? Чи є якісь інші формалізовані стандарти, які ви віддаєте перевагу?


1
// Спочатку прохання "уподобань аудиторій" може здатися нешкідливим, але це перетворює стаковий переплив у механізм опитування, свого роду збочену демократію небагатьох проти багатьох. "Чи є інші ________, які ви віддаєте перевагу?" це, буквально, просити їх про перевагу, а не факт.
Натан Басанес

Відповіді:


150

"Як правило, в python ви використовуєте PEP 8 - посібник зі стилів для Python Code як ваших стандартів / настанов кодування? Чи є якісь інші формалізовані стандарти, які ви віддаєте перевагу?"

Як згадується, ви дотримуєтеся PEP 8 для основного тексту, а PEP 257 - для конвенцій про докстринг

Поряд із посібниками зі стилю Python, я пропоную вам звернутися до наступного:

  1. Код, як Pythonista: Idiomatic Python
  2. Поширені помилки та бородавки
  3. Як не написати код Python
  4. Python gotcha

14

Я слідую вказівкам ідіом і ефективності Python, робом Найтом. Я думаю, що вони точно такі ж, як PEP 8, але є більш синтетичними та базуються на прикладах.

Якщо ви використовуєте wxPython, ви також можете перевірити Керівництво по стилю для коду wxPython , також від Chris Barker.


8

Я дуже близько дотримуюся PEP-8.

Є три конкретні речі, які я не можу потрудитися змінити на PEP-8.

  • Уникайте сторонніх пробілів безпосередньо в дужках, дужках або дужках.

    Запропоновано: spam(ham[1], {eggs: 2})

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

    Чому? 30+ років вбудованої звички притискається до () назви функцій або (у С) ключових слів. Починаючи з Фортран IV у 70-х.

  • Використовуйте пробіли навколо арифметичних операторів:

    Запропоновано: x = x * 2 - 1

    Я все одно це роблю: x= x * 2 - 1

    Чому? Наука програмування Гріса запропонувала це як спосіб підкреслити зв’язок між призначенням та змінною, який змінюється.

    Він не працює добре для декількох або розширених завдань, для цього я використовую багато пробілів.

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

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

    Я все одно це роблю: camelCase

    Чому? 20+ років вродженої звички camelCase, починаючи з Паскаля в 80-х.


1
Це чудовий зміст! codingstyleguide.com або codereview.stackexchange.com було б непоганим місцем, щоб мати ці чудові рекомендації.
Помпейо

5

PEP 8 - це добре, єдине, що я хотів би, щоб він зійшов важче - це свята війна "Tabs-vs-Spaces".

В основному, якщо ви починаєте проект в python, вам потрібно вибрати Tabs або Spaces, а потім розстріляти всіх порушників на виду.


4
Вкладки або пробіли? Від PEP8: Пробіли є кращим методом відступу. Вкладки повинні використовуватися виключно для того, щоб вони відповідали коду, який вже є відступом.
Демз

//, PEP8 досить зрозуміло, що пробіли є кращим методом відступу, Райан. Захищений. Хоча б оновити відповідь?
Натан Басанес


4

Я дотримуюся цього надзвичайно суворо. Єдиним богом перед PEP-8 є існуючі кодові бази.


1
і я зазначу, що PEP-8 навіть враховує існуючі бази коду.
Джон Малдер

2

Так, я намагаюся дотримуватися цього якомога ретельніше.

Я не дотримуюся жодних інших стандартів кодування.


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.