Stil#

Einrückung und Blöcke#

Python unterscheidet sich von den meisten anderen Programmiersprachen, weil es Einrückungen verwendet, um die Struktur zu bestimmen (d.h. um zu bestimmen, was die while-Klausel einer Bedingung usw. darstellt). Die meisten anderen Sprachen verwenden dazu geschweifte Klammern. Im folgenden Beispiel wird durch die Einrückung der Zeilen 3–6 festgelegt, dass sie zur while-Anweisung gehören:

1>>> x, y = 6, 3
2>>> while x > y:
3...     x -= 1
4...     if x == 4:
5...         break
6...     print(x)

Einrückungen zur Strukturierung des Codes anstelle von geschweiften Klammern ist zwar etwas gewöhnungsbedürftig, bietet aber erhebliche Vorteile:

  • Ihr könnt weder fehlende oder zu viele Klammern haben. Auch müsst ihr nicht mehr nach der Klammer suchen, die zu früheren Klammern passen könnte.

  • Die visuelle Struktur des Codes spiegelt seine tatsächliche Struktur wider, wodurch die Struktur des Codes sehr viel einfacher zu verstehen ist.

  • Python Codierung-Styles sind meist einheitlich; m.a.W., euer Code wird meist sehr ähnlich aussehen, wie derjenige von anderen.

Kommentare#

Meist ist alles, was hinter # folgt ein Kommentar und wird bei der Ausführung des Codes nicht beachtet. Die offensichtliche Ausnahme ist # in einer Zeichenkette:

>>> x = "# Dies ist eine Zeichenkette und kein Kommentar"

Grundlegender Python-Stil#

In Python gibt es nur relativ wenige Einschränkungen für den Codierungsstil, mit der offensichtlichen Ausnahme, dass der Code durch Einrücken in Blöcke gegliedert werden muss. Selbst in diesem Fall ist nicht vorgeschrieben, wie (Tabulatoren oder Leerzeichen) und wie weit eingerückt wird. Es gibt jedoch bevorzugte stilistische Konventionen für Python, die im Python Enhancement Proposal (PEP) 8 enthalten sind. Eine Auswahl von Python-Konventionen findet ihr in der folgenden Tabelle:

Kontext

Empfehlung

Beispiel

Modul- und Paketnamen

kurz, Kleinbuchstaben, Unterstriche nur bei Bedarf

math, sys

Funktionsnamen

Kleinbuchstaben, ggf. (gegebenenfalls)` mit Unterstrichen

my_func()

Variablennamen

Kleinbuchstaben, ggf. (gegebenenfalls)` mit Unterstrichen

my_var

Klassennamen

CamelCase-Schreibweise

MyClass

Konstantennamen

Versalien mit Unterstrichen

PI

Einrückung

Vier Leerzeichen pro Ebene, keine Tabs

Vergleiche

nicht explizit mit True oder False,siehe auch Boolesche Werte und Ausdrücke

if my_var:, if not my_var:

Ich empfehle dringend, die Konventionen von PEP 8 zu befolgen. Sie sind bewährt, und machen euren Code für euch selbst und andere leichter verständlich.