Namenskonvention für Python-Dateien?


137

Ich habe diesen Teil von PEP-8 unter https://www.python.org/dev/peps/pep-0008/#package-and-module-names gesehen

Mir ist nicht klar, ob dies auf den Dateinamen eines Moduls / einer Klasse / eines Pakets verweist.

Wenn ich jeweils ein Beispiel hätte, sollten die Dateinamen gegebenenfalls in Kleinbuchstaben mit Unterstrichen angegeben werden? Oder etwas anderes?


4
tl; dr: zwei Klassen FooBarund FooBizmöglicherweise beide in file somepkg/foobar.py(also :), from somepkg.foobar import FooBaraber Klasse TimerErrorkönnte except/timer_error.py(also from except.timer_error import TimerError) hineingehen, da das Entfernen von CamelCasemanchmal das Lesen des Wortes erschwert und snake_casedaher für den Dateinamen verwendet werden kann.
Michael

Antworten:


156

Zitieren von https://www.python.org/dev/peps/pep-0008/#package-and-module-names :

Module sollten kurze Namen in Kleinbuchstaben haben. Unterstriche können im Modulnamen verwendet werden, wenn dies die Lesbarkeit verbessert. Python-Pakete sollten auch kurze Namen in Kleinbuchstaben enthalten, von der Verwendung von Unterstrichen wird jedoch abgeraten.

Für den Unterricht :

Klassennamen sollten normalerweise die CapWords-Konvention verwenden.

Und Funktions- und (lokale) Variablennamen sollten sein:

Kleinbuchstaben mit durch Unterstriche getrennten Wörtern, um die Lesbarkeit zu verbessern

In dieser Antwort finden Sie den Unterschied zwischen Modul, Klasse und Paket:

  • Ein Python-Modul ist einfach eine Python-Quelldatei, mit der Klassen, Funktionen und globale Variablen verfügbar gemacht werden können.
  • Ein Python-Paket ist einfach ein Verzeichnis von Python-Modulen.

So sagt Ihnen PEP 8 :

  • Module (Dateinamen) sollten kurze Namen in Kleinbuchstaben haben und Unterstriche enthalten.
  • Pakete (Verzeichnisse) sollten kurze Namen in Kleinbuchstaben haben , vorzugsweise ohne Unterstriche.
  • Klassen sollten die CapWords-Konvention verwenden.

PEP 8 sagt , dass Namen sollten kurz ; Diese Antwort gibt einen guten Überblick darüber, was bei der Erstellung von Variablennamen zu beachten ist, die auch für andere Namen gelten (für Klassen, Pakete usw.):

  • Variablennamen sind keine vollständigen Deskriptoren.
  • Details in Kommentare einfügen;
  • Ein zu spezifischer Name kann einen zu spezifischen Code bedeuten.
  • Halten Sie kurze Bereiche für eine schnelle Suche bereit.
  • Zeit damit verbringen, über Lesbarkeit nachzudenken.

Eine gute Übersicht über die Namenskonventionen finden Sie abschließend im Google Python Style Guide .


5
Und ich werde verlegen darum bitten, mein Verständnis zu bestätigen, dass Module Klassen enthalten - würden Sie also Klassen innerhalb von Modulen verwenden und könnten mehrere Klassen in einem Modul haben?
Darkace

6
Ja, Sie können 0, 1 oder mehr Klassen in einem Modul haben.
Gold

1
Ich bin froh, dass ich dies rechtzeitig vor dem Entstehen meines Projekts herausgefunden habe, da alle meine Pakete genau wie mein Unterricht der CapsWords-Konvention entsprachen.
Bas Jansen

1
@pypmannetjies das ist eigentlich eine andere frage, aber ich würde sagen, dass du lange verständliche namen kurzen nicht verständlichen vorziehen solltest.
30.

1
Für den Paketnamen steht "Die Verwendung von Unterstrichen wird empfohlen", was nicht verboten ist. In der Python-Philosophie sollten Sie die Regel befolgen, "obwohl Praktikabilität die Reinheit übertrifft". Natürlich ist die beste , einen Weg zu finden , um die Regel zu folgen und praktisch sein (vielleicht mehrere Pakete machen den Namen zu teilen, some> long> namestatt somelongname?)
Juh_

0

Hier ist ein Link für verschiedene Arten von Python-Namenskonventionen.

Der Styleguide für Python basiert auf Guidos Empfehlungen für Namenskonventionen.

Bildbeschreibung hier eingeben

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.