Ich erhalte einen Pylint-Fehler bezüglich meiner Konstante: MIN_SOIL_PARTICLE_DENS
(ungültiger Name). Irgendwelche Ideen, warum diese Konstante falsch ist? Hier ist meine volle Funktion:
def bulk_density(clay, sand, organic_matter):
MIN_SOIL_PARTICLE_DENS = 2.65
x1 = (0.078 + 0.278 * sand + 0.034 * clay + 0.022 * organic_matter - 0.018
* sand * organic_matter - 0.027 * clay * organic_matter - 0.584 * sand
* clay)
x2 = -0.107 + 1.636 * x1
field_capacity = vol_water_content_33_j_kg(clay, sand, organic_matter)#m3/m3
sat_water_content = 0.043 + field_capacity + x2 - 0.097 * sand
return (1 - sat_water_content) * MIN_SOIL_PARTICLE_DENS
quelle
func_name = make_func(1,2,3)
dies als falsch angesehen werden könnte? Der aktuelle Anwendungsfall ist dasvlen = numpy.vectorize(len)
Utils-Modul für die Arbeit mit unregelmäßigen Arrays in h5py .Einige einfache Regeln:
UPPER_CASE
Buchstaben definiert und auf Modulebene definiert werdenCamelCase
Buchstaben definiert werdenlower_case
und innerhalb von Funktionen, Klassen usw. definiert werden.Lassen Sie uns nun über Ihren Fall sprechen,
MIN_SOIL_PARTICLE_DENS
wird innerhalb einer Funktion definiert und sollte nur Kleinbuchstaben enthalten. AnstattMIN_SOIL_PARTICLE_DENS
als Konstante zu betrachten, betrachtet Pylint sie hier als Variable und damit als Pylint-Fehler.Pylint Tutorial
quelle
Ich fand dieses Verhalten ärgerlich, aber es gibt eine Möglichkeit, Pylint zu konfigurieren, um dies zu vermeiden!
Führen Sie die folgende Ini-Deklaration in Ihre
.pylintrc
Datei ein:[BASIC] variable-rgx=((([a-z_][a-z0-9_]{2,})|(_[a-z0-9_]*)|(__[a-z][a-z0-9_]+__))$)|([A-Z_][A-Z0-9_]+$)
Ich habe diesen regulären Ausdruck durch Nehmen aufgebaut
Der Standard-Regex "snake_case" stammt aus der Quelle von pylint in dieser Zeile .
Der Standard-Regex CONST_VAR, der in dieser Zeile aus der Quelle von pylint stammt
und sie durch
|
und einige Klammern verbinden.Theoretisch könnte man auch einfach nehmen
.*
, aber dies würde auch ungültige Namen wie erlaubenmixed_CASE
.quelle