convenzione codice Python usando pylint
-
22-08-2019 - |
Domanda
sto provando pylint per controllare il mio codice sorgente per le convenzioni. In qualche modo alcuni nomi di variabili sono abbinati con l'espressione regolare per le costanti (const-rgx
) al posto del nome della variabile regex (variable-rgx
). Come abbinare il nome della variabile con variable-rgx
? O dovrei estendere const-rgx
con la mia roba variable-rgx
?
es.
C0103: 31: Invalid name "settings" (should match (([A-Z_][A-Z1-9_]*)|(__.*__))$)
Soluzione
In qualche modo alcuni nomi di variabili sono abbinati con l'espressione regolare per le costanti (const-rgx) anziché il nome regex variabili (variabile rgx).
Sono quelle variabili dichiarate a livello di modulo? Forse è per questo che vengono trattate come costanti (almeno questo è il modo in cui devono essere dichiarati, in base alle PEP-8).
Altri suggerimenti
Ho appena disabilitare tale avviso perché non seguo queste convenzioni di denominazione.
Per fare ciò, aggiungere questa riga in cima è il modulo:
# pylint: disable-msg=C0103
Se si desidera disabilitare che a livello mondiale, quindi aggiungerlo al comando pylint:
python lint.py --disable-msg=C0103 ...
(should match (([A-Z_][A-Z1-9_]*)|(__.*__))$)
come hai detto che è il const-rgx che è solo la corrispondenza delle lettere, maiuscole, o nomi circondato da doppie sottolineature.
le variabili-rgx è
([a-z_][a-z0-9_]{2,30}$)
Se la variabile si chiama 'Impostazioni' che in effetti dovrebbe corrispondere le variabili-rgx
mi viene in mente solo 2 motivi per questo .. o impostazioni è un costante o si tratta di un bug in pylint.