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語句應(yīng)該使用 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