it-swarm.com.de

Sollen Python-Klassen-Dateinamen auch camelCased sein?

Ich weiß, dass Klassen in Python normalerweise camelCase verwenden.

Ist es auch die normale Konvention, dass die Datei, die die Klasse enthält, auch camelCase ist, insbesondere wenn die Datei nur die Klasse enthält?

Soll beispielsweise die Klasse className anstelle von className.py in class_name.py gespeichert werden?

17
m4jesticsun

Die folgende Antwort stammt größtenteils aus dieser Antwort .

Wenn Sie PEP 8 folgen, sollten Sie nur Kleinbuchstaben mit optionalen Unterstrichen verwenden.

Zitieren der Namenskonventionen von PEP 8 für Pakete und Module :

Module sollten kurze, aus Kleinbuchstaben bestehende Namen haben. Unterstriche können im Modulnamen verwendet werden, wenn dies die Lesbarkeit verbessert.

Und für den Unterricht:

Klassennamen sollten normalerweise die CapWords-Konvention verwenden.

Siehe diese Antwort für den Unterschied zwischen Modul, Klasse und Paket:

Ein Python-Modul ist einfach eine Python-Quelldatei, die Klassen, Funktionen und globale Variablen verfügbar machen kann.

Meine Frage ist, ist es auch die normale Konvention, dass die Datei die enthält die Klasse auch camelCase'd insbesondere wenn die Datei nur enthält die Klasse

Kurze Antwort: Nein.

Längere Antwort: sollte aus Kleinbuchstaben bestehen und bei Bedarf unterstreichen.

Aus PEP8 "Paket- und Modulnamen" :

Module sollten kurze, aus Kleinbuchstaben bestehende Namen haben. Unterstriche können .__ sein. Wird im Modulnamen verwendet, wenn die Lesbarkeit verbessert wird. Python-Pakete sollte auch kleine, aus Kleinbuchstaben bestehende Namen haben, obwohl die Verwendung von Unterstriche sind entmutigt.

Wenn Sie nicht genau wissen, was ein module ist:

Ein Modul ist eine Datei, die Python-Definitionen und Anweisungen enthält. Das Dateiname ist der Modulname mit dem Zusatz .py.

2
Jack

Die offizielle Konvention ist die Verwendung von Kleinbuchstaben für Dateinamen (wie bereits von anderen angegeben). Der Grund wurde jedoch nicht erwähnt ...

Da Python plattformübergreifend arbeitet (und es normalerweise üblich ist, es auf diese Weise zu verwenden), aber Dateisysteme bei der Verwendung von Gehäusen variieren, ist es besser, alternative Fälle zu eliminieren. Unter Linux ist es beispielsweise möglich, MyClass.py und myclass.py im selben Verzeichnis zu haben. Das ist bei Windows nicht so!

Wenn Sie MyClass.py und myclass.py in einem git-Repo haben oder auch nur das Gehäuse in derselben Datei ändern, kann git verrückt wirken, wenn Sie von Linux und Windows aus Push/Pull ausführen.

Obwohl dies kaum ein Thema ist, aber in derselben Hinsicht, hat SQL dieselben Probleme, bei denen unterschiedliche Standards und Konfigurationen UpperCases für Tabellennamen zulassen können oder nicht.

Ich persönlich finde es angenehmer, TitleCasing/camelCasing auch unter Dateinamen zu lesen, aber wenn Sie etwas tun, das plattformübergreifend funktioniert, ist es am sichersten, es nicht zu tun. 

1
BuvinJ