2010-05-17 5 views
45

Ich versuche, ein wirklich einfaches Modul mit einer .py-Quelldatei darin zusammenzustellen, und bin bereits in einen Roadblock geraten. Ich würde es scons-config nennen, aber import scons-config funktioniert nicht in Python. Ich fand this SO question und schaute auf PEP8 style guide, aber bin etwas verwirrt, es spricht nicht über Zwei-Wort-Namen-Konventionen.Python: Benennung eines Moduls, das einen Zwei-Wort-Namen hat

Was ist der richtige Weg, damit umzugehen?

  • Modulname: SconsConfig? scons_config? sconsconfig? scons.config?
  • Name der einzelnen .py-Datei darin: scons-config.py? scons_config.py?

edit: Ich habe „die Verwendung von Unterstrichen wird abgeraten“, und das hat mich am Ende einer Sackgasse: sollte ich „sconsconfig“ oder „scons_config“ verwenden (ich denke, die anderen sind aus)?

+1

Ein einzelnes '.py' ist ein Modul ... –

Antwort

53

Wenn Sie müssen, verwenden Sie immer Unterstriche _.

einen Punkt . würde Mit nicht einmal

from scons.config import whatever 

brechen würde, sonst arbeiten.

Aber PEP 8 klar beschreibt es:

Paket- und Modulnamen

Module sollte kurz hat, all-Kleinen Namen. Unterstrichekann verwendet werden in den Modulnamen, wenn es verbessert Lesbarkeit. Python Pakete sollte auch kurze, alle Kleinbuchstaben Namen, obwohl die Verwendung von Unterstrichen entmutigt.

UPDATE:

Um Ihre Frage direkt Ziel: Ich denke, sconsconfig ist in Ordnung. Es ist nicht zu lang und gut lesbar.

Aber ehrlich gesagt glaube ich nicht, dass jemand Ihnen die Schuld geben wird, wenn Sie Unterstriche verwenden und Ihr Code mit beiden Entscheidungen läuft. Es gibt immer ein bestimmtes Niveau, wo Sie sich nicht mehr interessieren sollten dass viel mehr.

+3

Ich sah" Verwendung von Unterstrichen wird abgeraten "und es hat mich in einer Sackgasse verlassen. –

+7

@Jason S: Naja, benutze es, wenn die Lesbarkeit wirklich leidet oder an einen anderen Namen denkt;) Es wird * nur * entmutigt, nicht verboten. –

+2

"Es gibt immer ein gewisses Niveau, auf dem du dich nicht mehr so ​​sehr interessieren solltest." Stimmt, aber es gibt fast immer Konsequenzen für diese Art von Entscheidungen und wenn Sie ein Anfänger wie ich sind, ist es entmutigend. Vielen Dank! –

2

- ist ein Nein. Das Symbol wird für den Minusoperator verwendet. Das Gleiche gilt für die meisten Programmiersprachen. Verwenden Sie _ oder sonst nichts.

11

Zunächst ist der Modulname identisch mit dem Namen der einzelnen .py-Datei. In Python-Sprache ist eine Sammlung mehrerer .py-Dateien ein Paket.

PEP-8 rät davon ab, Paketnamen mit Unterstrichen aufzubrechen. Ein schneller Peak in meinem Site-Packages-Verzeichnis zeigt, dass Multi-Word-Namen normalerweise nur zusammen laufen (e.z., setuptools, sqlalchemy)

Modulnamen (dh Dateinamen) können durch Unterstriche getrennt werden (und ich tue dies normalerweise, weil ich hasse namessthatruntogethersoyoucannardlyreadthem).

Nur mit Kleinbuchstaben kleben (per PEP-8). Dies vermeidet Probleme beim Übergang von Groß- und Kleinschreibung in Groß- und Kleinschreibung und umgekehrt.

4

Neben PEP-8 können Sie auch überprüfen, wie die nativen Python-Module mit diesem Problem umgehen.

Wenn Sie the native modules of Python 2 mit that of Python 3 vergleichen würden, würden Sie sehen, dass die neue Tendenz mit den offiziellen Entwicklern ist, Großbuchstaben und Unterstriche zu vermeiden. Zum Beispiel ConfigParser in Python 2 wird configparser in Python 3.

bei dieser Suche, wäre die beste Vorgehensweise sein, um Groß- und Unterstrichen zu vermeiden, und kommt nur die Worte zusammen, das heißt sconsconfig.

Verwandte Themen