Der Google Python Style Guide definiert umfassende Programmier- und Formatierungsrichtlinien für Python-Projekte bei Google, um Code-Konsistenz, Lesbarkeit und Wartbarkeit zu maximieren. Das Dokument behandelt sprachspezifische Best Practices wie strikte Lint-Vorgaben, Modulimporte, Typarchitektur, Ausnahmebehandlung und Dokumentationsstandards. Die Einhaltung wird durch automatisierte Werkzeuge wie Pylint, Black, Pyink und Pytype unterstützt.
Wichtigste Punkte
Zeilenlänge und Formatierung: Die maximale Zeilenlänge ist auf 80 Zeichen begrenzt; es wird eine strikte Einrückung von 4 Leerzeichen (ohne Tabs) verwendet. Zeilenfortsetzungen erfolgen implizit über Klammern statt mit Backslashes.
Linting und statische Analyse: Quellcode muss zwingend mit Pylint (unter Verwendung der bereitgestellten pylintrc) geprüft werden. Warnungen sind über # pylint: disable=<symbolic-name> mit einer expliziten Begründung zu unterdrücken.
Import-Regeln: Es sind ausschließlich Importe von Modulen und Paketen erlaubt (import x oder from x import y), keine direkten Importe einzelner Klassen oder Funktionen (mit Ausnahme von Typisierungsmodulen wie typing). Relative Importe sind untersagt.
Ausnahmebehandlung (Exceptions): Vordefinierte Ausnahmen sollen verwendet werden; globale except:-Blöcke ohne Einschränkung sind untersagt, und zustandsbehaftete Ressourcen (Dateien, Sockets) müssen stets über with-Kontexte abgesichert werden.
Typannotationen (Type Hints): Die Verwendung von Typannotationen wird stark empfohlen und ist für öffentliche APIs verbindlich. Die Typprüfung erfolgt per Pytype auf Basis des PEP-484-Standards.
Verbot von Power Features: Fortgeschrittene Metaprogrammierungs- und Reflexionsfunktionen (z. B. dynamische Vererbung, Bytecode-Manipulation, Custom Metaclasses) sind grundsätzlich zu vermeiden, sofern sie nicht integraler Bestandteil der Standardbibliothek sind.
Namenskonventionen: Bezeichner folgen strikt PEP 8 (lower_with_under für Variablen und Funktionen, CapWords für Klassen und Ausnahmen, CAPS_WITH_UNDER für Konstanten). Bindestriche in Dateinamen sind unzulässig.
Diskussions-Highlights
Fehlende Diskussionen: Da für diesen Hacker-News-Eintrag (ID 49309308) keine Kommentare im bereitgestellten Datensatz vorliegen, sind keine spezifischen Community-Perspektiven, Gegenargumente oder alternativen Ressourcen dokumentiert.
Glossar
Pylint: Ein statisches Analysewerkzeug für Python, das Quellcode auf Programmierfehler, Stilverstöße und Formatierungsabweichungen überprüft.
PEP 8: Der offizielle Style Guide und Leitfaden für Python-Code, der Formatierungsregeln wie Namenskonventionen und Einrückungen definiert.
Type Hint (Typannotation): Eine formale Annotation zur Angabe von Datentypen für Funktionsparameter und Rückgabewerte zur Unterstützung statischer Analysewerkzeuge.
Pytype: Ein von Google entwickeltes statisches Typprüfungswerkzeug für Python, das Typfehler zur Build-Zeit identifiziert.
Generator: Eine Funktion, die mit dem Schlüsselwort yield arbeitet, um einen Iterator zu erzeugen, der Werte bei Bedarf berechnet, statt eine vollständige Liste im Speicher zu halten.
Lexikalisches Scoping: Ein Konzept, bei dem der Gültigkeitsbereich einer Variable statisch durch ihre Position im Quelltext festgelegt wird.
Decorator (Dekorator): Eine syntaktische Erweiterung (mit der @-Notation), um das Verhalten von Funktionen oder Klassen dynamisch zur Definitionszeit zu modifizieren oder zu erweitern.
Context Manager (Kontextmanager): Ein Konstrukt mit dem with-Schlüsselwort, das die automatisierte und sichere Ressourcenverwaltung (wie das Öffnen und Schließen von Dateien oder Sockets) garantiert.