Frage

Ich stammt aus einem C # Hintergrund die Namenskonvention für Variablen und Methodennamen sind in der Regel entweder oder Pascal Camelcase-Fall:

// C# example
string thisIsMyVariable = "a"
public void ThisIsMyMethod()

In Python, ich habe die oben gesehen, aber ich habe auch Unterstrichen verwendet gesehen werden:

# python example
this_is_my_variable = 'a'
def this_is_my_function():

Gibt es eine bevorzugte endgültige Codierstil für Python?

War es hilfreich?

Lösung

Siehe Python PEP 8 .

  

Funktionsnamen sein Klein sollte,   mit Unterstrichen durch getrennte Wörter als   notwendig Lesbarkeit zu verbessern.

     

mixedcase ist nur in einem Kontext erlaubt   wo das ist bereits die vorherrschende   Stil

Variablen ...

  

Mit der Funktion Regeln Benennung:   Kleinbuchstaben mit getrennten Worte   unterstreicht, wie notwendig zur Verbesserung der   Lesbarkeit.

Persönlich abweichen, ich das, weil ich mixedCase über lower_case für meine eigenen Projekte auch vorziehen.

Andere Tipps

Google Python Style Guide die folgende Konvention hat:

  

module_name, package_name, Klassenname, method_name, exception,   function_name, GLOBAL_CONSTANT_NAME, global_var_name,   instance_var_name, function_parameter_name, local_var_name

Ein ähnliches Benennungsschema sollte auf eine CLASS_CONSTANT_NAME angewendet werden

David Goodger (in "Code wie ein Pythonista" hier ) beschreibt die PEP 8 Empfehlungen wie folgt:

  • joined_lower für Funktionen, Methoden, Attribute, Variablen

  • joined_lower oder ALL_CAPS für Konstanten

  • StudlyCaps für Klassen

  • camelCase nur entsprechen vorbestehenden Konventionen

Wie der Style Guide für Python-Code zugibt,

  

Die Namenskonventionen von Python   Bibliothek sind ein bisschen ein Durcheinander, so dass wir   nie bekommen vollständig konsistent

Beachten Sie, dass dies nur auf Python bezeichnet Standardbibliothek . Wenn sie nicht bekommen , die im Einklang, dann kaum gibt es viel Hoffnung eine der mit in der Regel haft-to-Konvention für alle Python-Code, oder?

Von diesem, und die Diskussion hier, würde ich folgern, dass es nicht eine schreckliche Sünde, wenn man unter Verwendung hält z.B. Java oder C # 's (klar und gut etablierte) Konventionen für Variablen und Funktionen zu benennen, wenn sie Python überqueren. Wenn man bedenkt, natürlich, dass es am besten ist, mit dem, was der vorherrschenden Stil für ein Code-Basis / Projekt / Team zu halten passiert zu sein. Da der Python Style Guide weist darauf hin, interne Konsistenz die meisten Fragen.

Sie können mich als Ketzer entlassen. :-) Wie die OP, ich bin kein "Pythonista", jedenfalls noch nicht.

Es gibt PEP 8 , wie andere Antworten zeigen, aber PEP 8 ist nur der Styleguide für die Standard-Bibliothek, und es ist nur als Evangelium darin aufgenommen. Eine der häufigsten Abweichungen von PEP 8 für andere Teile des Codes ist die Variablennamen, die speziell für Methoden. Es gibt keine einzige vorherrschen Stil, obwohl das Volumen der Code unter Berücksichtigung, dass mixedcase verwendet, wenn man eine strikte Volkszählung machen waren wahrscheinlich mit einer Version von PEP 8 mit mixedcase enden würde. Es gibt wenig andere Abweichung von PEP 8, die ganz so üblich ist.

Wie bereits erwähnt, PEP 8 sagt lower_case_with_underscores für Variablen, Methoden und Funktionen zu nutzen.

Ich ziehe mit lower_case_with_underscores für Variablen und mixedCase für Methoden und Funktionen macht den Code explizit und lesbar. So nach dem Zen of Python „explicit ist besser als implizit“ und „Readability zählt "

Persönlich versuche ich für die Klassen Camelcase, mixedcase Methoden und Funktionen zu nutzen. Variablen sind in der Regel unterstreichen separierten (wenn ich mich erinnern kann). Auf diese Weise kann ich auf einen Blick erkennen, was genau bin ich Aufruf, anstatt alles suchen, um die gleiche.

Die meisten Menschen bevorzugen Python Unterstrichen, aber selbst ich Python jetzt seit mehr als 5 Jahren verwende, ich sie noch nicht gefällt. Sie sehen nur hässlich zu mir, aber vielleicht ist das ganze Java in meinem Kopf.

ich einfach wie Camelcase besser, da es mit der Art und Weise besser paßt Klassen genannt werden, es fühlt sich mehr logischen SomeClass.doSomething() als SomeClass.do_something() zu haben. Wenn Sie in dem globalen Modul-Index in Python umschauen, finden Sie beides, was auf die Tatsache zurückzuführen ist, dass es eine Sammlung von Bibliotheken aus verschiedenen Quellen, die Überstunden wuchsen und nicht etwas, das von einem Unternehmen wie Sun mit strengen Codierungsregeln entwickelt wurde . Ich würde sagen, das Endergebnis ist. Verwenden Sie, was Ihnen besser gefällt, es ist nur eine Frage des persönlichen Geschmacks

weiter zu dem, was @JohnTESlade hat geantwortet. Googles Python Style Guide einige recht ordentlich Empfehlungen hat,

Namen zu vermeiden

  • einzelne Zeichennamen außer für Zähler oder Iteratoren
  • Striche (-) in jedem Paket / Modulnamen
  • \__double_leading_and_trailing_underscore__ names (reserviert von Python)

Naming Convention

  • „Intern“ bedeutet intern auf ein Modul oder eine geschützte oder private innerhalb einer Klasse.
  • einen einzigen Unterstrich Voranstellen (_) hat eine gewisse Unterstützung für den Schutz von Modul-Variablen und Funktionen (nicht mit dem Import im Preis enthalten * aus). Voranstellen einen Doppelstrich (__) zu einer Instanz Variable oder Methode dient effektiv die Variable oder Methode privat zu seiner Klasse zu machen (Namen Mangeln verwenden).
  • Platz verwandte Klassen und Top-Level-Funktionen zusammen in einem Modul. Im Gegensatz zu Java, gibt es keine Notwendigkeit, sich auf eine Klasse pro Modul zu begrenzen.
  • Verwenden Sie CapWords für Klassennamen, aber lower_with_under.py für Modulnamen. Zwar gibt es viele bestehende Module genannt CapWords.py sind, entmutigt wird dies jetzt, weil es verwirrend ist, wenn das Modul nach einer Klasse genannt werden passiert. ( "Warten - habe ich schreibe import StringIO oder from StringIO import StringIO")

Richtlinien abgeleitet von Guido Empfehlungen eingeben Bild Beschreibung hier

Es ist ein Papier dazu: http: // www .cs.kent.edu / ~ jmaletic / papers / ICPC2010-CamelCaseUnderScoreClouds.pdf

TL; DR Er sagt, dass snake_case besser lesbar als Camelcase ist. Deshalb moderne Sprachen (oder verwenden sollten) Schlange, wo immer sie können.

Die Codierung Stil ist in der Regel Teil einer internen Politik / Konvention Standards der Organisation, aber ich denke, im Allgemeinen, der all_lower_case_underscore_separator Stil (auch genannt snake_case) in Python am häufigsten ist.

Normalerweise folgt man den Konventionen in der Standardbibliothek Sprache.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top