Sono un coder Python abbastanza potente, ma troppo del mio stile è un po 'casuale, e sono sicuro che ci sono più soluzioni Pythonic per molti problemi rispetto a quelli che trovo. Quali PEP sono essenziali per leggere qualsiasi Pythonista esperto?Quali PEP devono essere letti?
risposta
Definitivamente PEP 8, una guida di stile per Python.
Utilizzare una dose pesante di buonsenso durante la lettura. Ignora completamente la sezione su "79 caratteri"; è indecifrabile e porta a un codice brutto e difficile da leggere senza alcun beneficio nel mondo reale (questo è stato scritto nel 2001 e i sistemi di sviluppo equilibrati non erano ancora 80x25). Gli orrori dell'esempio "Rettangolo" mostrano chiaramente il problema. –
Nonostante il mio schermo da 22 ", tutti i miei editor/finestre di terminale sono fissi su 80 caratteri e cerco di scrivere il codice di conseguenza. (Ma, come dice Terry Pratchett, le regole sono di farti pensare prima di romperle) – bayer
+ 1 per PEP8. Provo anche il mio meglio per tenerlo a 80. – fengshaun
Ho scoperto che la lettura di quelli declinati può dare delle buone intuizioni su cosa sia Pythonic e cosa no. Questo è stato un po 'di tempo fa quindi non ho esempi specifici.
Ora è retrospettivo, ma comunque interessante: penso che Things that will Not Change in Python 3000 sia una buona lettura, con molti collegamenti alle discussioni che hanno preceduto le decisioni.
Pep anche 0257 convenzione docstring
Anche se Python è incredibilmente intuitivo, un sacco di gente non comprendere la sua filosofia.
Pep 20: Lo Zen di Python
- Bello è meglio di brutto.
- L'esplicito è meglio che implicito.
- Semplice è meglio che complesso.
- Complesso è meglio che complicato.
- L'appartamento è migliore di quello annidato.
- Sparse è meglio che denso.
- Contabilità.
- I casi speciali non sono abbastanza speciali da infrangere le regole.
- Anche se la praticità batte la purezza.
- Gli errori non devono mai passare in silenzio.
- Salvo esplicitamente tacere.
- Di fronte all'ambiguità, rifiuta la tentazione di indovinare.
- Ci dovrebbe essere uno - e preferibilmente solo uno - modo più ovvio per fare esso.
- Anche se all'inizio potrebbe non essere ovvio, a meno che tu non sia olandese.
- Ora è meglio che mai.
- Anche se non è spesso migliore di a destra ora.
- Se l'implementazione è difficile da spiegare, è una cattiva idea.
- Se l'implementazione è facile da spiegare, potrebbe essere una buona idea.
- Gli spazi dei nomi sono una delle grandi idee - facciamo di più!
io consiglierei anche PEP 8 e 257. So che questo si discosta leggermente dalla domanda originale, ma vorrei far notare che PyCharm (probabilmente il migliore IDE Python intorno a mio parere) automaticamente controlla se stai seguendo alcune delle più importanti linee guida di PEP 8, nel caso in cui qualcuno fosse interessato ...
Ecco un indice di PEP - http://www.python.org/dev/peps/
quando mai si è dubbio su un argomento, si può cercare in quel
- 1. oracolo: quali istruzioni devono essere confermate?
- 2. Quali caratteri devono essere sfuggiti su HTML?
- 3. Quali caratteri devono essere sfuggiti per evitare iniezioni (My) SQL?
- 4. Filettatura Delphi: quali parti del codice devono essere protette/sincronizzate?
- 5. Dove devono essere definiti Meteor.methods()?
- 6. Soggetti RX: devono essere evitati?
- 7. I modelli PMML possono essere letti in R?
- 8. I valori CFHEADER possono essere letti da un altro codice?
- 9. Espansione di un cluster Cassandra con un nodo aggiuntivo: quali porte devono essere aperte?
- 10. Quali RFC devono essere considerati nello sviluppo di un client SMTP?
- 11. Utilizzando Mercurial, come posso vedere quali modifiche devono ancora essere spinte?
- 12. Quali file di progetto ASP.NET MVC devono essere conservati in un repository?
- 13. Quali tipi di file di Visual C++ devono essere impegnati per il controllo della versione?
- 14. Quali sostituzioni di carattere devono essere eseguite per rendere sicuro l'URL di codifica di base 64?
- 15. Quali criteri di check-in devono essere considerati per il controllo della versione?
- 16. Quando si utilizza il controllo del codice sorgente, quali file devono essere effettivamente impegnati?
- 17. Quali file .net devono essere esclusi dal controllo del codice sorgente?
- 18. Quali file in un progetto Java Netbeans devono essere posti sotto controllo di versione?
- 19. Quali valori devono essere usati per il campo Mysql BOOL: TRUE/FALSE o 1/0, perché?
- 20. Quali proprietà devono essere serializzate/deserializzate in Symfony 2 User class?
- 21. Quali condizioni devono essere soddisfatte affinché TestFlight invii attività al server?
- 22. Quali problemi di sicurezza devono essere risolti quando si lavora con Google App Engine?
- 23. Quali file devono essere aggiunti a SVN in un progetto Java di eclissi?
- 24. Quali caratteri devono essere sfuggiti in una stringa di query HTTP?
- 25. Quali file/cartelle devono essere aggiunti al controllo del codice sorgente?
- 26. Quali indici devono essere creati per ottimizzare la query SQL con più OR condizioni
- 27. Quali sono gli esempi reali di quando devono essere utilizzati gli elenchi collegati?
- 28. Quali file di progetti NetBeans devono essere inseriti nel controllo del codice sorgente?
- 29. Quali file di Visual Studio devono essere ignorati da subversion per minimizzare i conflitti?
- 30. Quali file devono essere impegnati in github per un progetto eclissi
1 - Grande questione. –
http://www.python.org/dev/peps/ – u0b34a0f6ae
dovrebbe essere wiki della comunità – SilentGhost