Zusammenfassung des Python-Codierungsstandards PEP8 (1) Fortsetzung
Blockkommentare (#) gelten im Allgemeinen für folgenden Code und rücken auf derselben Ebene wie dieser Code ein.
Lassen Sie zwischen der Anweisung und dem Inline-Kommentar mindestens zwei Leerzeichen. Es sind keine selbsterklärenden Inline-Kommentare erforderlich.
schlechtes Beispiel:
x = x + 1 #Erhöhen Sie x um 1
Sie sollten für jedes Modul, jede Funktion, jede Klasse oder Methode eine Dokumentzeichenfolge schreiben.
Verwenden Sie einen Namen, der eher die Verwendung als die Implementierung widerspiegelt
b (1 unterer Buchstabe)
B (1 Großbuchstabe)
lowercase
lower_case_with_underscores
UPPERCASE
UPPER_CASE_WITH_UNDERSCORES
CapitalizedWords
· Eine dokumentierte Schnittstelle wird als öffentliche Schnittstelle betrachtet, es sei denn, das Dokument deklariert sie ausdrücklich als interne Schnittstelle. · Internen Schnittstellen (Pakete, Module, Klassen, Funktionen, Attribute und andere Namen) wird ein Unterstrich vorangestellt.
· Schreiben Sie Code, der andere Python-Implementierungen (PyPy, Jython, IronPython, Cython, Psyco usw.) nicht benachteiligt.)
(__eq__, __ne__, __lt__, __le__, __gt__, __ge__)
Implementieren
· Verwenden Sie immer die def-Anweisung, anstatt eine Zuweisungsanweisung zu schreiben, die den Lambda-Ausdruck direkt mit dem Bezeichner verbindetGutes Beispiel:
def f(x): return 2*x
schlechtes Beispiel:
f = lambda x: 2*x
· Versuchen Sie, Ausnahmen von Ausnahmen anstelle von BaseExceptions abzuleiten · Python3 verwendet "Raise X from Y", um Ausnahmen explizit auszutauschen, ohne den ursprünglichen Traceback zu verlieren
So was
try:
import platform_specific_module
except ImportError:
platform_specific_module = None
-Wenn Sie die abgefangene Ausnahme an einen bestimmten Namen binden möchten, benennen Sie die Ausnahme explizit
So was
try:
process_data()
except Exception as exc:
raise DataProcessingFailedError(str(exc))
· Verwenden Sie explizit die neue betriebssystembezogene Fehlerhierarchie, wenn Sie Betriebssystemfehler abfangen -Für alle Versuche / Ausnahmen beschränken Sie den in try enthaltenen Bereich auf den minimal erforderlichen Code.
Gutes Beispiel:
try:
value = collection[key]
except KeyError:
return key_not_found(key)
else:
return handle_value(value)
schlechtes Beispiel:
try:
#Der Prozess des Einschlusses in try ist zu groß
return handle_value(collection[key])
except KeyError:
# handle_value()Fängt auch den von generierten KeyError ab
return key_not_found(key)
· Verwenden Sie die with-Anweisung, wenn die Ressource nur in einem bestimmten Teil des Codes verwendet wird ・ Schreiben Sie die return-Anweisung konsistent. -Wenn die Funktion eine return-Anweisung enthält, die einen Ausdruck zurückgibt, wird die return-Anweisung, die keinen Wert zurückgibt, explizit als return None geschrieben.
Gutes Beispiel: if foo.startswith('bar'):
schlechtes Beispiel: if foo[:3] == 'bar':
· Verwenden Sie immer isinstance (), um Objekttypen zu vergleichen, anstatt Typen direkt zu vergleichen
Gutes Beispiel: if isinstance(obj, int):
schlechtes Beispiel: if type(obj) is type(1):
-Für Sequenzen verwenden Sie die Tatsache, dass die leere Sequenz False ist.
Gutes Beispiel: if not seq:
if seq:
schlechtes Beispiel: if len(seq):
if not len(seq):
Gutes Beispiel: if greeting:
schlechtes Beispiel: if greeting == True:
Schlimmeres Beispiel: if greeting is True:
Code, der Funktionsanmerkungen in einem anderen Stil als PEP484 verwenden möchte (https://www.python.org/dev/peps/pep-0484/#suggested-syntax-for-python-2-7-and-straddling-code) Über,
type: ignore
Wird am Anfang der Datei geschrieben. Dies weist das Typprüfungsprogramm an, alle Anmerkungen zu ignorieren.
Wenn Sie nur verstehen, dass es so geschrieben ist, denke ich, dass dieser Inhalt ausreichend ist. Wenn Sie mehr wissen möchten (warum Sie es so schreiben sollten), lesen Sie bitte Dokumentation.
Recommended Posts