Zusammenfassung zum pythonischen Stil (1): PEP8

Hintergrund

Ich bin dabei, den Job zu wechseln und Python bei der Arbeit ernsthaft einzusetzen, daher fasse ich den Python-Codierungsstil zusammen, den ich zuvor als Überprüfung untersucht habe.

UPDATE: Teil 2 wurde aktualisiert.

Inhalt dieser Seite

Die Einhaltung von PEP 8 ist die erste Grundvoraussetzung. Es gibt bereits viele vorhandene Artikel, einschließlich vorhandener japanischer Übersetzungen. Daher möchte ich, dass Sie diesen Artikeln Vorrang einräumen. Original Japanische Übersetzung

Andere Qiita-Artikel: Kompatibel mit dem Python-Codierungsstandard PEP8 Zusammenfassung des Python-Codierungsstandards PEP8 (1)

Zweck der Schöpfung

(Irgendwie habe ich das Gefühl, dass so etwas von jemandem verkündet wird, der regelmäßig ausgräbt.)

Das zweite Mal werde ich die Inhalte zusammenfassen, die nicht in PEP 8 enthalten sind. Wenn Sie Ergänzungen oder Vorschläge haben (ich bin kein Japaner, also weisen Sie bitte auf Japanisch hin), geben Sie mir bitte Masakari. Dann zum Hauptthema ~

Annahme

Code-Layout

Einzug

test = long_function(var1, var2,
                     var3, var4)
def long_function(
        var1, var2,var3,
        var4):
    print(val_one)
test = long_function(
    var1, var2, var3,
    va4)
if (hoge1_is_true and
    hoge2_is_true):
    #Kommentar
    do_something()

#OR
if (hoge1_is_true
        and hoge2_is_true):
    do something
my_list = [
    1, 2, 3,
    4, 5, 6
    ]

#OR
my_list = [
    1, 2, 3,
    4, 5, 6
]

Linienlänge

Verwenden Sie Klammern:

if (hoge1 and hoge2
        hoge3 and hoge4):
    do_something

""verwenden:

with open(filepath1, "r") as file1, \
     open(filepath2, "r") as file2:
    do_something

Position der Unterbrechungslinie

Unterbrechen Sie die Linie vor dem Bediener, um die Lesbarkeit zu gewährleisten

revenue = gacha1_price * payers1
          + gacha2_price * payers2
          + gacha3_price * payers3

Leerzeile

Quelldatei-Codierung

importieren

import pandas
import numpy
from sklearn.linear_model import LinearRegression, LogisticRegression

Speicherort der Dunder-Anweisung auf Modulebene

"""This is the example module.

This module does stuff.
"""

from __future__ import barry_as_FLUFL

__all__ = ['a', 'b', 'c']
__version__ = '0.1'
__author__ = 'Cardinal Biggles'

import os
import sys

andere

#Yes
if foo == 'blah':
    do_blah_thing()
do_one()
do_two()
do_three()

#No:
if foo == 'blah': do_blah_thing()
do_one(); do_two(); do_three()

Zitat

"""This is how you write 
documentatoin string.
"""

Leerzeichen im Code

Vermeiden Sie die folgenden Leerzeichen

#Yes
buger(bread[2], {cheese: 1})
#No
buger( bread[ 2 ], { cheese: 1 } )
#Yes
a_tuple = (0,)
#No
a_tuple = (0, )
#Yes
if a: print x, y; x, y = y, x
#No
if a : print x , y ; x , y = y , x
#Yes
ham[1:9], ham[1:9:3], ham[:9:3], ham[1::3], ham[1:9:]
#No
ham[1: 9], ham[1 :9], ham[1:9 :3]
#Yes
ham[lower+offset : upper+offset], ham[: upper_fn(x) : step_fn(x)]
#No
ham[lower + offset:upper + offset]
#Yes
func_call(params)
#No
func_call (params)
#Yes
dct['key'] = lst[index]
#No
dct ['key'] = lst [index]
#Yes
x = 1
y = 2
long_variable = 3

#No
x             = 1
y             = 2
long_variable = 3
#Yes
def complex(real, imag=0.0):
    return magic(r=real, i=imag)
#No
def complex(real, imag = 0.0):
    return magic(r = real, i = imag)

Lassen Sie uns das folgende Leerzeichen setzen

#Yes
i = i + 1
submitted += 1
x = x*2 - 1
hypot2 = x*x + y*y
c = (a+b) * (a-b)

#No
i=i+1
submitted +=1
x = x * 2 - 1
hypot2 = x * x + y * y
c = (a + b) * (a - b)
#Yes
def munge(input: AnyStr): ...
def munge() -> AnyStr: ...

#No
def munge(input:AnyStr): ...
def munge()->PosInt: ...
#Yes
def munge(sep: AnyStr = None): ...
def munge(input: AnyStr, sep: AnyStr = None, limit=1000): ...

#No
def munge(input: AnyStr=None): ...
def munge(input: AnyStr, limit = 1000): ...

Komma beenden

#Yes
FILES = ('setup.cfg',)
#No
FILES = 'setup.cfg',
#Yes
FILES = [
    'setup.cfg',
    'tox.ini',
    ]
initialize(FILES,
           error=True,
           )

#No
FILES = ['setup.cfg', 'tox.ini',]
initialize(FILES, error=True,)

Kommentar

Allgemeines

Kommentar blockieren

Inline-Kommentar

Dokumentbeschreibung

Über die Benennung

Basic

b  #Einzelne Kleinbuchstaben
B  #Einzelnes Kapital
lowercase  #Alles klein geschrieben
lower_case_with_underscores  # _Kleinbuchstaben mit
UPPERCASE  #Alles Kapital
UPPER_CASE_WITH_UNDERSCORES  # _Mit Kapital
CapitalizedWords  #Großbuchstaben
CapitalizeAbbreviationLikeHTTP  #Bei Großbuchstaben sollten alle richtigen Abkürzungen in Großbuchstaben angegeben werden
mixedCase  #zusammengesetzt
Capitalized_Words_With_Underscores  #Hässliche Kapitalinitialen+ _

_single_leading_underscore  #Bei Verwendung nur im Inneren, wie privat
single_trailing_underscore_ #Um Konflikte mit Python-Schlüsselwörtern zu vermeiden
__double_leading_underscore  #Änderungen beim Benennen von Klassenvariablen
__double_leading_and_trailing_underscore__  #Definiere es niemals selbst

Verwendung des Namensstils

Andere Namensregeln

Recommended Posts

Zusammenfassung zum pythonischen Stil (1): PEP8
Zusammenfassung über den pythonischen Stil (2): Anderes Schaben
Zusammenfassung über Python3 + OpenCV3
Zusammenfassung und häufige Fehler zu Cron
EP 2 Befolgen Sie die PEP 8 Style Guide