Hallo. Ist der von Ihnen geschriebene Quellcode sofort leicht zu lesen?
Es gibt viele Möglichkeiten für andere Personen als Sie, den von Ihnen geschriebenen Code zu sehen, z. B. wenn Sie gemeinsam mit mehreren Personen entwickeln, ihn im Internet veröffentlichen oder bereitstellen. Wenn der Code, den Sie zu solchen Zeiten schreiben, gut formatiert ist, können Sie ihn schnell und ohne Missverständnisse verstehen, nicht nur für den Leser, sondern auch für die Überprüfung Ihres eigenen Codes.
In solchen Fällen lauten die Konventionen zum Formatieren des Python-Codes ** PEP 8 ** und ** PEP 257 **.
In diesem Artikel werde ich einige typische Regeln vorstellen, die beiläufig verstanden werden können und das minimale Erscheinungsbild ** erreichen, anstatt den Inhalten von PEP 8 und PEP 257 strikt zu folgen. Machen.
#!/usr/bin/env python
# -*- coding: utf-8 -*-
Zunächst wird dies häufig am Anfang des Codes geschrieben. Die erste Zeile ist ** Shiban (Sheban) ** und die zweite Zeile heißt ** Magic Comment **.
** Shiban ** beschreibt so etwas wie "Bitte führen Sie diese Datei mit diesem Programm aus".
Wenn Sie dies schreiben, wenn Sie diesen Code ausführen möchten (vorübergehend sample.py genannt),
$ python sample.py
nicht
$ ./sample.py
Sie können es mit dem Befehl von ausführen.
Als nächstes folgt ** Magic Comment **, der laut PEP8 ** nicht erforderlich ** ist, wenn es sich um Python3-Quellcode handelt, der in UTF-8 geschrieben ist.
Der magische Kommentar beschreibt die Zeichencodierung des geschriebenen Codes und sollte anscheinend nicht beschrieben werden, da der Standardzeichencode in Python 3 UTF-8 ist.
Es gibt drei Hauptregeln für Importanweisungen.
# OK
import os
import sys
# NG
import sys, os
from sklearn.model_selection import GridSearchCV, train_test_split
import os
import sys
from sklearn.model_selection import GridSearchCV, train_test_split
from mypackage import sample
Docstring
Eine Beschreibung der definierten Funktion oder Klasse. Dies ist eine Menge Arbeit zu beschreiben, aber es sieht mit und ohne anders aus.
def my_func(x):
"""
Gibt den quadratischen Wert zurück.
Parameters
----------
x : int
Ganzzahliger Zielwert
Returns
-------
y : int
Quadratischen Wert eingeben
"""
y = x ** 2
return y
Schließen Sie den Docstring in ** 3 doppelte Anführungszeichen ** ein. Einfaches Zitat ist NG. Sie können den Inhalt nach der Zeile mit doppelten Anführungszeichen schreiben.
#Dies ist auch in Ordnung
def my_func_hoge(x):
"""Gibt den quadratischen Wert zurück.
Parameters
----------
x : int
Ganzzahliger Zielwert
Returns
-------
y : int
Quadratischen Wert eingeben
"""
y = x ** 2
return y
#Schreiben wir wenigstens eine Zusammenfassung.
def my_func_fuga(x):
"""Gibt den quadratischen Wert zurück."""
y = x ** 2
return y
Schreiben Sie in die erste Zeile eine Zusammenfassung der Zielfunktion oder -klasse. Stellen Sie als Einschränkung sicher, dass das letzte Zeichen eine halbe Breite ** enthält.
Fügen Sie nach der Zusammenfassung eine Leerzeile ein, um die Argumente aufzulisten, und fügen Sie nach dem Argument eine Leerzeile ein, um die Rückgabewerte aufzulisten.
Es scheint, dass es Dinge gibt, die gut mit Jupyter usw. sind, wenn Sie dies schreiben, aber die Erklärung hier wird weggelassen.
Dies ist das sogenannte Absenken. Verwenden Sie ** 4 Leerzeichen ** anstelle von Tabulatoren. Bei Verwendung von Tensorflow ist der Einzug jedoch tendenziell tief, sodass zwei Leerzeichen zulässig sind.
#Wenn das Argument der Funktion lang wird, wird die Zeile entsprechend der Position in der linken Klammer unterbrochen.
a = long_name_function(hikisu_ichi, hikisu_ni,
hikisu_san, hikisu_yon)
#Senken Sie den Einzug und beginnen Sie eine neue Zeile
b = long_name_function(
hikisu_ichi, hikisu_ni,
hikisu_san, hikisu_yon)
#Zeilenumbrüche mit abgesenktem Einzug von der Mitte sind NG
c = long_name_function(hikisu_ichi, hikisu_ni,
hikisu_san, hikisu_yon)
Bricht in langen Formeln
#Es ist in Ordnung, wenn einheitlich ist, ob vor oder nach der Formel gebrochen werden soll
result_1 = (sushiki_ichi
+ sushiki_ni
- (sushiki_san - susiki_yon)
- susiki_go)
result_2 = (sushiki_ichi +
sushiki_ni -
(sushiki_san - susiki_yon) -
susiki_go)
Lassen Sie im Prinzip zwei Zeilen auf der obersten Ebene, dh Zeilenumbrüche ohne Einrückung, und ansonsten eine oder weniger Zeilen.
# OK
hoge = {'fuga': [0]}
# NG
hoge = { 'fuga': [ 0 ] }
# OK
if a == b:
c = {'d': 1}
# NG
if a == b :
c = {'d' : 1}
#Die Ausnahme ist der Doppelpunkt, der zum Schneiden verwendet wird
array[2:5]
a = i + 1
b = c >= d
e = f not in g_list
h = j and k
#Es wird jedoch verwendet, um Standardparameter in Funktionen usw. zu beschreiben.=Lassen Sie auf beiden Seiten keinen Platz
def hoge(piyo=None):
pass
#Wird verwendet, um Argumente bei der Angabe von Funktionsschlüsselwörtern zu beschreiben=Lassen Sie auf beiden Seiten keinen Platz
piyopiyo = hoge(piyo=1)
x = (b + (b**2 - 4*a*c) ** 0.5) / (-2*a)
Wie war es? Dieses Mal haben wir nicht alle PEP 8 und PEP 257 behandelt, aber ich hoffe, dass Sie ungefähr verstehen, auf welche Art von Punkten Sie achten sollten.
Ich würde mich sehr freuen, wenn Sie diesen Artikel lesen und eine lesbare und gut aussehende Codierung verfolgen möchten.