2016-04-22 19 views
6

Il codice di errore E226 è circa "spazio vuoto mancante attorno all'operatore aritmetico".PEP8 E226 raccomandazione

Io uso pacchetto Anaconda s' in Sublime che metterà in evidenza come violazione PEP8 E226 per esempio questa riga:

hypot2 = x*x + y*y 

Ma Guido's PEP8 style guide quella linea è realmente visibile come esempio di recommended use di spazi all'interno operatori.

Domanda: qual è la linea guida corretta? Spazi sempre attorno agli operatori o solo in alcuni casi (come mostra la raccomandazione di Guido)?

Inoltre: chi decide cosa va in PEP8? Avrei pensato che la raccomandazione di Guido avrebbe determinato come funzionasse.

+1

Non sai quale risposta stai sperando qui ... PEP 8 è PEP 8. Il controllore di stile PEP 8 di Sublime è un argomento diverso. Forse/ovviamente l'implementatore di quel pacchetto non ha implementato quella particolare regola esattamente come descritto nell'effettiva raccomandazione PEP 8. – deceze

+0

Mi dispiace, ho aggiunto la mia domanda reale per essere più chiara. Mi piacerebbe sapere quale linea guida è quella corretta. La seconda domanda è una domanda meno importante. – Gabriel

+0

Um, c'è solo una linea guida nella tua domanda, cosa vuoi che scegliamo? – wRAR

risposta

8

I manutentori dello strumento PEP8 decidono cosa fare.

Come notato, questi non corrispondono sempre esattamente alla guida di stile PEP8. In questo caso particolare, non so se è un eccesso di manutentori o una decisione deliberata. Dovresti chiedere loro di scoprirlo o potresti trovare la risposta nella cronologia dei commit.

Guido ha recentemente chiesto ai manutentori degli strumenti pep8 e pep257 di rinominarli, per evitare questa confusione. See this issue for example. Di conseguenza, gli strumenti vengono rinominati rispettivamente in pycodestyle e pydocstyle.

+1

Grazie per aver chiarito che Alasdair. Ho pensato che cose come questa sarebbero state risolte molto tempo fa. – Gabriel

5

si dice nel PEP8:

Se si utilizzano gli operatori con differenti priorità, considerano aggiungendo spazi bianchi intorno agli operatori con la priorità più bassa (i). Utilizzare il proprio giudizio; tuttavia, non utilizzare mai più di uno spazio e avere sempre la stessa quantità di spazio bianco su entrambi i lati di un operatore binario. (l'enfasi è la mia).

Nell'esempio elencato, + ha una priorità inferiore, in modo che il BDFL sceglie di usare lo spazio intorno ad esso e non utilizza spazi tra maggiore priorità *.

+1

Si prega di spiegare i downvotes. Non posso imparare nulla dal silenzio.:) – erip

+1

Ho upvoted e ho ** mai ** capito downvotes senza spiegazioni date. Per me, non aggiungono nulla. – Gabriel

+0

Non ho fatto downvoting, ma immagino che sarebbe perché la tua risposta non risponde a nessuna delle domande dell'OP - cioè Q1: è pep8-text o pep8-tool correct ?, e Q2: chi decide cosa va in PEP8? – thebjorn