Mi piacciono molto gli standard di stile seguenti, come quelli specificati in PEP 8. Ho un linter che lo controlla automaticamente, e sicuramente il mio codice è molto migliore proprio per questo.Python allineamento delle assegnazioni (stile)
C'è solo un punto in PEP 8, l'E251 & E221 non si sente molto bene. Venendo da un background di JavaScript, che ho usato per allineare le assegnazioni di variabili come segue:
var var1 = 1234;
var2 = 54;
longer_name = 'hi';
var lol = {
'that' : 65,
'those' : 87,
'other_thing' : true
};
E a mio modesto parere, questo migliora la leggibilità in modo drammatico. Il problema è che questo è dis-consigliato da PEP 8. Con dizionari, non è poi così male, perché gli spazi sono consentiti dopo i due punti:
dictionary = {
'something': 98,
'some_other_thing': False
}
posso "dal vivo" con le assegnazioni delle variabili senza allineamento, ma quello che ho don' t come a tutti non è quello di essere in grado di passare argomenti con nome in una chiamata di funzione, in questo modo:
some_func(length= 40,
weight= 900,
lol= 'troll',
useless_var= True,
intelligence=None)
Quindi, quello che finisce per fare sta usando un dizionario, come segue:
specs = {
'length': 40,
'weight': 900,
'lol': 'troll',
'useless_var': True,
'intelligence': None
}
some_func(**specs)
o semplicemente si mply
some_func(**{'length': 40,
'weight': 900,
'lol': 'troll',
'useless_var': True,
'intelligence': None})
Ma ho la sensazione che questo lavoro intorno è solo peggio ignorando il PEP 8 E251/E221.
Qual è la migliore pratica?
EDIT molti anni dopo
Non allineare. Prima o poi una nuova variabile che è più lunga arriverà e dovrai colpire la barra spaziatrice qua e là per un po 'finché tutto sarà di nuovo bello. Non ne vale la pena.
La procedura consigliata è seguire PEP 8. Abituarsi a non allineare gli operatori di assegnazione ei valori del dizionario. La tua modesta opinione può facilmente cambiare se sottoposta a lavorarci ogni giorno. – delnan
Sei in grado di passare argomenti per nome in Javascript? Allora, perché dovresti fare questa cosa orribile? – jadkik94
In JS è buona norma passare un oggetto di specifiche anziché 15 argomenti ordinati. Douglas Crockford dixit, e sono assolutamente d'accordo. – bgusach