2010-07-28 7 views
13

Un amico mi ha parlato di Pylint e, solo per curiosità, l'ho eseguito su alcuni dei moduli di libreria standard. Con mia sorpresa, le valutazioni erano basse. Qui ci sono un paio di basi:Motivo per le basse valutazioni di Pylint del codice libreria standard Python

os.py 
Your code has been rated at 3.55/10 

random.py 
Your code has been rated at 4.74/10 

Ho eseguito su alcuni più moduli e trovato il voto per essere ~ 6 - 7.

mi chiedevo il motivo dietro questo? Pylint è rotto o ci sono più fattori di valutazione di quelli a cui sono a conoscenza? Sto facendo questa domanda in particolare perché sono nuovo di Python e dipendeva da Pylint per aiutarmi a migliorare il mio stile di codifica :)

risposta

12

Le impostazioni predefinite di Pylint sono piuttosto rigide e si lamentano di cose che non dovrebbero. Ad esempio, se si utilizza foo(**kwargs), viene visualizzato un messaggio sull'utilizzo di "magic". A volte sembra che Pylint stia guardando Python dal punto di vista di un programmatore Java.

Dovresti controllare i messaggi specifici e decidere se sei d'accordo con loro.

Altri problemi includono non essere in grado di eseguire condizioni condizionali specifiche della piattaforma. In os.py, si lamenta:

F:119: Unable to import 'riscos' 
+0

Aah vedo. Non ho guardato le relazioni che profondamente, sono d'accordo. E 'stato il voto che mi ha sorpreso! – Joshua

6

Pylint è stato scritto molto tempo dopo lo stdlib. E lo stdlib non aderisce a convenzioni di denominazione rigide per esempio (PEP008 è recente, wrt python). I fattori chiave per ottenere "buoni" rating pylint:

  • assicurarsi che il proprio stile di scrittura del codice è conforme a ciò che pylint si aspetta (o sintonizzarsi pylint abbinano al tuo stile/convenzioni). Questo include funzioni, variabili, classi, nomi di metodi, spazi in vari luoghi, ecc.

  • scrivere codice Python in modo statico e conveniente ed evitare trucchi dinamici.

  • docstrings scrittura

Ovviamente, la libreria standard non è scritto per ottimizzare il rating pylint dei moduli.

L'utilizzo di Pylint non migliora necessariamente il tuo "stile di codifica". In alcuni casi, tuttavia, renderà il codice più facile da capire, a volte a costo di una certa "pitonicità".

+0

Ci sono anche molti casi in cui i seguenti suggerimenti PyLint con la configurazione predefinita renderanno il codice _harder_ da capire. Se ti rendi meno leggibile il codice per soddisfare PyLint, è un buon segno che dovresti modificare le impostazioni di PyLint. Le impostazioni predefinite sono molto rigide; questo è ragionevole perché disabilitare le cose è più ovvio che abilitarle. –

Problemi correlati