Im Vergleich zu Sprachen wie Perl verfügt Python über eine begrenzte Anzahl von Steuerungskonstrukten:
- nur
ifund nein unless,
- nur,
fordass über Sequenzen iteriert und keine foreachoder C-Stil for,
- nur
whiledas prüft eine Bedingung jede Schleife und nein do-while,
- nur
if-elifund nein switch,
- Es gibt nur ein Kommentar-Konstrukt, das
#, und für jede Zeile können Sie feststellen, ob sie auskommentiert ist oder nicht, ohne vorhergehende Zeilen zu betrachten.
Es gibt auch fast eine Möglichkeit, Ihre Quelle einzurücken. Die meisten Fälle von kreativen Einrückungen werden syntaktisch ausgeschlossen.
Dies erleichtert dem Menschen das Parsen einer Python-Quelle.
Es gibt Versuche, in integrierten Typen und in der Standardbibliothek minimal, aber vollständig zu sein.
- Für veränderbare Listen verwenden Sie den einzigen integrierten
listTyp. es ist O (1) für die meisten Operationen, und Sie müssen nie die richtige Implementierung wählen,
- für unveränderliche Listen verwenden Sie ebenfalls nur den
tupleTyp,
- Für Karten verwenden Sie die einzige integrierte Funktion,
dictdie in den meisten Fällen verdammt effizient ist. Sie müssen nicht überlegen, welche Implementierung verwendet werden soll.
Python 3 erweitert dies auf Ganzzahlen: Egal wie groß Ihre Ganzzahl ist, Sie verwenden denselben Typ und kümmern sich nie um Zwang.
Python versucht, syntaktischen Zucker zu vermeiden. Aber manchmal wird syntaktischer Zucker hinzugefügt, um den offensichtlichen Weg zu verdeutlichen. Sie können schreiben, if foo is not Noneanstatt zu schreiben, if not (foo is None)weil "nicht" ein Sonderfall ist. Noch foo is not Noneliest leicht, nicht falsch interpretiert werden kann, und Sie müssen nicht denken, schreiben Sie einfach die offensichtliche Sache.
Natürlich, die meisten von komplexeren Dinge in Python kann auf verschiedene Weise erfolgen. Sie können Klassen Methoden durch Deklaration oder durch einfache Zuweisung von Slots hinzufügen, Sie können Argumente auf verschiedene kreative Arten an Funktionen übergeben usw. Dies liegt nur daran, dass die Interna der Sprache meistens offengelegt werden.
Der Schlüssel ist, dass es immer einen Weg gibt, der der beste sein soll, den allumfassenden Fall. Wenn es andere Möglichkeiten gibt, wurden sie nicht als gleichwertige Alternativen hinzugefügt (wie ifund unless), sondern legen lediglich das Innenleben offen. Langsam aber stetig werden solche Alternativen durch die Verbesserung des bekannten besten Mechanismus überholt (nicht beseitigt!).
Dekorateure schließen AOP-Funktionsaufrufe ab. Vor 2.6 mussten Sie __metaclass__magic member verwenden, um die Metaklasse einer Klasse zu deklarieren. Jetzt können Sie auch hier die gleiche Decorator-Syntax verwenden. Vor 3.0 hatten Sie zwei Arten von Zeichenfolgen, byteorientiert und Unicode, die Sie versehentlich mischen konnten. Jetzt haben Sie den einzigen Unicode strund den einzigen binären transparenten Code bytes, den Sie nicht versehentlich mischen können.
"""Kommentare (docstrings). Diese erstrecken sich über mehrere Zeilen.