prägnanter Überblick
Kurzübersicht
1. Kodierung
Wenn keine besonderen Umstände vorliegen , die Datei verwendet immer UTF-8 Codierung
Sofern keine besonderen Umstände vorliegen, Der Dateikopf muss mit dem #-*-coding:utf-8-*-mark
2 Codeformat
< hinzugefügt werden 🎜>2.1 , Einzug
- einheitlich verwenden 4 Mit Leerzeichen einrücken
2.2. Zeilenbreite
Jede Codezeile sollte 80 Zeichen nicht überschreiten (bei Sonderzeichen kann es etwas mehr sein). Umstände) 80, aber das Maximum 120)Grund:- Dies ist ein Vergleichsvergleich Sehr hilfreich
- Praktisch, um den Code unter der Konsole anzuzeigen
- Zu lang kann ein Designfehler sein
2.3. Anführungszeichen
Einfach ausgedrückt verwendet die natürliche Sprache doppelte Anführungszeichen und die maschinelle Markierung verwendet einfache AnführungszeichenIm Code sollten die meisten einfache Anführungszeichen verwenden
- Natürliche Sprache verwendet doppelte Anführungszeichen „..."
- Die Maschinenkennung verwendet einfache Anführungszeichen '...'. Zum Beispiel der Schlüssel in dict
- Regulärer Ausdruck Die Formel verwendet native doppelte Anführungszeichen r"..."
- docstring (docstring) Verwenden Sie drei doppelte Anführungszeichen """......"""
2.4, Leerzeile
- Modul Zwei Leerzeilen zwischen Funktionen auf Blockebene und Klassendefinitionen; eine Leerzeile zwischen
- Klassenmitgliedsfunktionen
class A: def __init__(self): pass def hello(self): pass def main(): pass
- Sie können mehrere Leerzeilen verwenden, um mehrere Gruppen verwandter Funktionen zu trennen
- Sie können Leerzeilen in Funktionen verwenden Trennen Sie logisch verwandte Codes
2.5, Codierung
- Dateinutzung UTF-8-Kodierung
- #-*-conding:utf-8-*-logo zum Dateikopf hinzufügen
3 . Import-Anweisung
import Anweisungen sollten in separaten Zeilen geschrieben werden# 正确的写法 import os import sys # 不推荐的写法 import sys,os # 正确的写法 from subprocess import Popen, PIPE import语句应该使用 absolute import # 正确的写法 from foo.bar import Bar # 不推荐的写法 from ..bar import Bar
- Die Importanweisung sollte am Anfang der Datei, nach der Modulbeschreibung und der Dokumentzeichenfolge sowie in der globalen Variablen platziert werden vorher;
- Importanweisungen sollten der Reihe nach angeordnet werden, wobei jede Gruppe durch eine Leerzeile getrennt werden sollte
import os import sys import msgpack import zmq import foo
- Beim Importieren von Klassendefinitionen aus anderen Modulen können Sie relative Importe verwenden
from myclass import MyClass
- Wenn ein Namenskonflikt auftritt, können Sie Namespaces verwenden
import bar import foo.bar bar.Bar() foo.bar.Bar()
4. Leerzeichen
- Ein Leerzeichen auf jeder Seite des binären Operators [=,-, =,==, > ;,in,is nicht, und]:
# 正确的写法 i = i + 1 submitted += 1 x = x * 2 - 1 hypot2 = x * x + y * y c = (a + b) * (a - b) # 不推荐的写法 i=i+1 submitted +=1 x = x*2 - 1 hypot2 = x*x + y*y c = (a+b) * (a-b)
- In der Parameterliste der Funktion muss danach ein Leerzeichen
stehen
# 正确的写法 def complex(real, imag): pass # 不推荐的写法 def complex(real,imag): pass
Fügen Sie in der Parameterliste der Funktion keine Leerzeichen um das Standardwert-Gleichheitszeichen hinzu
# 正确的写法 def complex(real, imag=0.0): pass # 不推荐的写法 def complex(real, imag = 0.0): pass
Fügen Sie nach der linken Klammer und vor der rechten Klammer keine zusätzlichen Leerzeichen hinzu
# 正确的写法 spam(ham[1], {eggs: 2}) # 不推荐的写法 spam( ham[1], { eggs : 2 } )
Keine zusätzlichen Leerzeichen vor der öffnenden Klammer des Wörterbuchobjekts
# 正确的写法 dict['key'] = list[index] # 不推荐的写法 dict ['key'] = list [index]
Nicht ausrichten Zusätzliche Leerzeichen für Zuweisungsanweisungen
# 正确的写法 x = 1 y = 2 long_variable = 3 # 不推荐的写法 x = 1 y = 2 long_variable = 3
5. Zeilenumbrüche
Python Unterstützt Zeilenumbrüche in Klammern. Derzeit gibt es zwei Situationen.
1. Die zweite Zeile wird zum Anfang der Klammer eingerückt
foo = long_function_name(var_one, var_two, var_three, var_four)
2. Die zweite Zeile wird um 4 Leerzeichen eingerückt, was für den Fall geeignet ist, dass die Startklammer neu ist Zeile
def long_function_name( var_one, var_two, var_three, var_four): print(var_one)
Verwenden Sie Backslash für Zeilenumbrüche, binären Operator .etc. sollte am Ende der Zeile stehen; lange Zeichenfolgen können mit dieser Methode auch umgebrochen werden
session.query(MyTable).\ filter_by(id=1).\ one() print 'Hello, '\ '%s %s!' %\ ('Harry', 'Potter')
Zusammengesetzte Anweisungen sind verboten, das heißt, eine Zeile enthält mehrere Anweisungen:
# 正确的写法 do_first() do_second() do_third() # 不推荐的写法 do_first();do_second();do_third();
if/for/while muss zeilenweise umbrochen werden:
# 正确的写法 if foo == 'blah': do_blah_thing() # 不推荐的写法 if foo == 'blah': do_blash_thing()
6.docstring
docstring Die zwei grundlegendsten Punkte in der Spezifikation:
1. Alle öffentlichen Module, Funktionen, Klassen und Methoden sollten in Docstring geschrieben werden. Private Methoden sind nicht unbedingt erforderlich, sollten aber mit einem Blockkommentar nach der Def versehen werden.
2. Das Ende des Dokumentstrings „“ sollte in einer eigenen Zeile stehen, es sei denn, der Dokumentstring hat nur eine Zeile.
rrree