[PEP8] Übernehmen Sie den Python-Quellcode und schreiben Sie ihn ordentlich

Am Anfang

Wenn Sie sich Websites zur Einführung in Programmiersprachen ansehen, werden Sie feststellen, dass Python als gut erzogene Sprache beschrieben wird. Ich habe den Eindruck, dass Python mehr Einschränkungen beim Schreiben hat als andere Sprachen, aber dennoch einen hohen Freiheitsgrad aufweist. Wenn Sie es tatsächlich entwickeln, bleibt eine große Anzahl von Gewohnheiten, die für jeden Programmierer einzigartig sind, in der Quelle.

Dies ist kein sehr wichtiges Thema für persönliche Hobbys, aber es ist ein ernstes Problem für die Arbeit, insbesondere für die Teamentwicklung. Einmal entwickelt, muss es grundsätzlich viele Jahre lang gewartet werden, und die für die Wartung verantwortliche Person ändert sich häufig während dieses Zeitraums. Es ist sehr wichtig, die Programmregeln im Projekt für die spätere Wartung zu definieren.

Wenn Sie die Regeln für jedes Projekt definieren möchten, können Sie es von Grund auf neu erstellen. Da dies jedoch Zeit und Kosten kostet, erstellen wir häufig Codierungsstandards auf der Basis von PEP8. Daher möchte ich diese vorstellen.

Was ist PEP8?

PEP8 ist ein Python-Codierungsstandard, der auf der Idee basiert, dass "Code häufiger gelesen als geschrieben wird". Durch die Entführung dieser Konvention möchten wir den Code leichter lesbar machen und den von jedem Programmierer erstellten Codestil konsistent machen.

Darüber hinaus zeigt PEP8 die Haltung, dass es nicht immer notwendig ist, diese Vereinbarung einzuhalten. Ich denke, es ist besser, flexibel Regeln zu erstellen, die den Merkmalen des Projekts entsprechen.

Beachten Sie jedoch, dass es Zeiten gibt, in denen Sie inkonsistent sein müssen
Das heißt, dieser Styleguide gilt möglicherweise nicht.
Wenn Sie Zweifel haben, priorisieren Sie Ihr Urteil.
Schauen Sie sich andere Beispiele an und entscheiden Sie, welches am besten aussieht.

Wie benutzt man

PEP8 selbst ist eine Konvention, es wird jedoch ein Mechanismus bereitgestellt, mit dem Sie leicht überprüfen können, ob der Code gemäß dieser Konvention geschrieben werden kann.

pip install pep8

--Ausführen Geben Sie den Zielquellcode im Argument an und drücken Sie den Befehl pep8

pep8 test.py 

--Ergebnis

test.py:16:1: E302 expected 2 blank lines, found 1
test.py:22:80: E501 line too long (95 > 79 characters)
test.py:27:1: E302 expected 2 blank lines, found 1
test.py:39:1: E302 expected 2 blank lines, found 1
test.py:44:11: E225 missing whitespace around operator
test.py:46:12: E225 missing whitespace around operator
test.py:47:13: E225 missing whitespace around operator
test.py:50:27: W291 trailing whitespace
test.py:51:34: W291 trailing whitespace
test.py:60:45: W291 trailing whitespace
test.py:66:16: E231 missing whitespace after ':'
test.py:74:80: E501 line too long (90 > 79 characters)
test.py:90:10: E231 missing whitespace after ','
test.py:92:56: E231 missing whitespace after ','
test.py:101:1: W391 blank line at end of file

Über den Inhalt der Vereinbarung

Hier sind einige der Allgemeinen Geschäftsbedingungen.

Einzug

―― 1 Einzug verwendet 4 Leerzeichen.

foo = long_function_name(var_one, var_two,
                         var_three, var_four)
def long_function_name(
        var_one, var_two, var_three,
        var_four):

Tabulator oder Leerzeichen

Linienlänge

with open('/path/to/some/file/you/want/to/read') as file_1, \
     open('/path/to/some/file/being/written', 'w') as file_2:
    file_2.write(file_1.read())

Leerzeile

Codierung der Quelldatei

--Verwenden Sie utf8

import

#good: 
import os
import sys

#bad:  
import sys, os
#good: 
import mypkg.sibling
from mypkg import sibling
from mypkg.sibling import example

#bad:  
from . import sibling
from .sibling import example

Leerzeichen in Ausdrücken und Sätzen

#good: 
spam(ham[1], {eggs: 2})
#bad: 
spam( ham[ 1 ], { eggs: 2 } )

#good: 
foo = (0,)
#bad: 
bar = (0, )

#good: 
spam(1)
#bad: 
spam (1)

#good: 
dct['key'] = lst[index]
#bad: 
dct ['key'] = lst [index]

#good: 
x = 1
y = 2
long_variable = 3
#bad: 
x             = 1
y             = 2
long_variable = 3

Komma beenden

#good
FILES = ('setup.cfg',)

Referenz

https://pep8-ja.readthedocs.io/ja/latest/

Recommended Posts

[PEP8] Übernehmen Sie den Python-Quellcode und schreiben Sie ihn ordentlich
Der Prozess, Python-Code objektorientiert zu machen und zu verbessern
[Python] Lesen Sie den Flask-Quellcode
[Python] Lesen Sie den Quellcode von Flasche Teil 2
[Python] Lesen Sie den Quellcode von Flasche Teil 1
Schreiben wir ein Python-Programm und führen es aus
Fourier-Konvertierung der von Python gelesenen WAV-Datei, umgekehrte Konvertierung und erneutes Schreiben
[Python3] Machen Sie einen Screenshot einer Webseite auf dem Server und schneiden Sie sie weiter zu
Schreiben wir Python-Code, der Go-Code analysiert und Go-Code generiert
Rufen Sie die Excel-Liste rekursiv in einem bestimmten Ordner mit Python ab und schreiben Sie sie in Excel.
[Python / Ruby] Mit Code verstehen Wie man Daten aus dem Internet abruft und in CSV schreibt
[Python] Ich habe das Spiel von pip installiert und versucht zu spielen
Überprüfen Sie immer PEP8, während Sie den Python-Quellcode in Emacs bearbeiten
PyArmor ~ Einfache Möglichkeit, Python-Quellcode zu verschlüsseln und bereitzustellen ~
Quellinstallation und Installation von Python
Ich habe die Python-Quelle heruntergeladen
Erste Python ② Versuchen Sie, Code zu schreiben, während Sie die Funktionen von Python untersuchen
Ich habe den Code geschrieben, um den Brainf * ck-Code in Python zu schreiben
Konvertieren Sie das Ergebnis von Python Optparse, um es zu diktieren und zu verwenden
Codieren Sie Python, um zu überprüfen und grafisch darzustellen, ob es dem Gesetz von Benford entspricht
Die Geschichte von Python und die Geschichte von NaN
Schreiben Sie Selentestcode in Python
Überprüfen Sie den Python-Codestil mit pep8
So schreiben Sie den richtigen Shebang in Perl-, Python- und Ruby-Skripten
[Python] Süß Ist es süß? Über Suiten und Ausdrücke in offiziellen Dokumenten
Ich habe Umgebungsvariablen in Docker festgelegt und in Python angezeigt.
Codebeispiel zum Abrufen von oauth_token und oauth_token_secret der Twitter-API in Python 2.7
Senden und Empfangen von Bilddaten als JSON in Python über das Netzwerk
Versuchen Sie, Python-Code zu schreiben, um Go-Code zu generieren. - Versuchen Sie, JSON-to-Go usw. zu portieren
Starten Sie die Webkamera, machen Sie ein Standbild und speichern Sie es lokal
[Python] Senden Sie das von der Webkamera aufgenommene Bild an den Server und speichern Sie es