Python-Codierungsstandards / Best Practices [geschlossen]

116

Verwenden Sie in Python im Allgemeinen PEP 8 - Style Guide für Python-Code als Codierungsstandards / -richtlinien? Gibt es andere formalisierte Standards, die Sie bevorzugen?

Kozyarchuk
quelle
1
//, Die Aufforderung zur "Publikumspräferenz" mag zunächst harmlos erscheinen, verwandelt den Stackoverflow jedoch in einen Wahlmechanismus, eine Art perverse Demokratie der Wenigen gegen die Vielen. "Gibt es noch andere ________, die du bevorzugst?" fragt sie buchstäblich nach einer Präferenz, nicht nach einer Tatsache.
Nathan Basanese

Antworten:

150

"Verwenden Sie in Python im Allgemeinen PEP 8 - Style Guide für Python-Code als Codierungsstandards / -richtlinien? Gibt es andere formalisierte Standards, die Sie bevorzugen?"

Wie von Ihnen erwähnt, folgen Sie PEP 8 für den Haupttext und PEP 257 für Dokumentationskonventionen

Zusammen mit Python Style Guides schlage ich vor, dass Sie Folgendes verweisen:

  1. Code wie ein Pythonista: Idiomatisches Python
  2. Häufige Fehler und Warzen
  3. Wie man keinen Python-Code schreibt
  4. Python gotcha
Bhadra
quelle
8

Ich halte mich sehr eng an PEP-8.

Es gibt drei spezifische Dinge, die ich nicht ändern kann, um auf PEP-8 umzusteigen.

  • Vermeiden Sie überflüssige Leerzeichen unmittelbar in Klammern, Klammern oder Klammern.

    Empfohlen: spam(ham[1], {eggs: 2})

    Ich mache das trotzdem: spam( ham[ 1 ], { eggs: 2 } )

    Warum? Über 30 Jahre tief verwurzelte Gewohnheit kuscheln () gegen Funktionsnamen oder (in C) Anweisungsschlüsselwörter. Beginnend mit Fortran IV in den 70er Jahren.

  • Verwenden Sie Leerzeichen um arithmetische Operatoren:

    Empfohlen: x = x * 2 - 1

    Ich mache das trotzdem: x= x * 2 - 1

    Warum? Gries 'The Science of Programming schlug dies vor, um den Zusammenhang zwischen der Zuweisung und der Variablen, deren Status geändert wird, hervorzuheben.

    Es funktioniert nicht gut für Mehrfachzuweisungen oder erweiterte Zuweisungen, dafür verwende ich viele Leerzeichen.

  • Für Funktionsnamen, Methodennamen und Instanzvariablennamen

    Vorgeschlagen: Kleinbuchstaben mit nach Bedarf durch Unterstriche getrennten Wörtern, um die Lesbarkeit zu verbessern.

    Ich mache das trotzdem: camelCase

    Warum? Über 20 Jahre verwurzelte Gewohnheit von camelCase, beginnend mit Pascal in den 80ern.

S.Lott
quelle
1
Das ist toller Inhalt! codingstyleguide.com oder codereview.stackexchange.com wäre ein schöner Ort sein , die diese große Richtlinie haben.
Pompeyo
5

PEP 8 ist gut, das einzige, was ich mir wünschte, es wäre schwieriger geworden, war der heilige Krieg zwischen Tabs und Spaces.

Wenn Sie ein Projekt in Python starten, müssen Sie grundsätzlich Tabulatoren oder Leerzeichen auswählen und dann alle Täter auf Sicht erschießen.

Ryan
quelle
4
Tabulatoren oder Leerzeichen? Aus PEP8: Leerzeichen sind die bevorzugte Einrückungsmethode. Tabulatoren sollten nur verwendet werden, um mit Code konsistent zu bleiben, der bereits mit Tabulatoren eingerückt ist.
Der Demz
//, PEP8 ist ziemlich klar, dass Leerzeichen die bevorzugte Einrückungsmethode sind, Ryan. Abgestimmt. Würden Sie die Antwort trotzdem aktualisieren?
Nathan Basanese
4

Ich folge ihm äußerst streng. Der einzige Gott vor PEP-8 sind vorhandene Codebasen.

Alex Gaynor
quelle
1
und ich würde bemerken, dass PEP-8 sogar vorhandene Codebasen berücksichtigt.
John Mulder
2

Ja, ich versuche es so genau wie möglich zu verfolgen.

Ich folge keinen anderen Codierungsstandards.

Oli
quelle
1

Ich folge dem PEP8, es ist ein großartiger Codierungsstil.

unglücklich
quelle