Pylint 유효하지 않은 상수 이름
내 상수와 관련하여 Pylint 오류가 표시됩니다 : MIN_SOIL_PARTICLE_DENS
(잘못된 이름). 이 상수가 잘못된 이유는 무엇입니까? 내 모든 기능은 다음과 같습니다.
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
이름을 확인할 때 Pylint는 상수, 변수, 클래스 등을 구분합니다. 함수 / 클래스 내에없는 이름은 상수로 간주되고 다른 이름은 변수로 간주됩니다.
참조 http://docs.pylint.org/features.html#basic-checker를
변수 -rgx :
[a-z_][a-z0-9_]{2,30}$
const-rgx :
(([A-Z_][A-Z0-9_]*)|(__.*__))$
당신이 함수에 있기 때문에 MIN_SOIL_PARTICLE_DENS
(pylint에 따르면) 변수로 간주되지만 pylint는 그것을 상수로 취급하므로 불평합니다.
이것은 pylint가 불평하지 않고 함수 안에 대문자 이름을 가질 수 없음을 의미합니다.
저에게 물어 보면 함수 내부에 대문자를 사용하는 것이 좋습니다. 모든 상수가 반드시 전역 적으로 정의되는 것은 아닙니다.
몇 가지 간단한 규칙 :
- 상수는
UPPER_CASE
문자로만 정의해야하며 모듈 수준에서 정의해야합니다. - 클래스 이름은
CamelCase
문자 로 정의해야합니다. - 변수는에서 정의
lower_case
해야하며 함수, 클래스 등에서 정의해야합니다.
이제 귀하의 사건에 대해 이야기하겠습니다.
MIN_SOIL_PARTICLE_DENS
함수 내에서 정의되며 소문자 만 있어야합니다. 따라서 MIN_SOIL_PARTICLE_DENS
상수 로 간주 하는 대신 pylint는 여기에서 변수로 간주하므로 pylint 오류가 발생합니다.
이 동작이 성가시다는 것을 알았지 만이를 방지하기 위해 파일 린트를 구성하는 방법이 있습니다!
다음 ini 스타일 선언을 .pylintrc
파일에 병합 합니다.
[BASIC]
variable-rgx=((([a-z_][a-z0-9_]{2,})|(_[a-z0-9_]*)|(__[a-z][a-z0-9_]+__))$)|([A-Z_][A-Z0-9_]+$)
나는이 정규식을
이 줄 에서 pylint의 소스에서 가져온 기본 snake_case 정규식 ,
이 줄의 pylint 소스에서 가져온 기본 CONST_VAR 정규식
그리고 |
괄호로 연결합니다 .
이론적으로는을 사용할 수도 .*
있지만 mixed_CASE
.
참고 URL : https://stackoverflow.com/questions/25184097/pylint-invalid-constant-name
'program story' 카테고리의 다른 글
좋은 무료 소형 Python 웹 호스트가 있습니까? (0) | 2020.10.17 |
---|---|
Bootstrap 3 RC 1의 자동 완성 JavaScript 모듈은 어디에 있습니까? (0) | 2020.10.17 |
이미 구성된 객체에 대한 std :: move 대 emplace_back ()을 사용한 C ++ 11 push_back ()의 효율성 (0) | 2020.10.17 |
ajax를 통해 제출할 때 왜 양식 태그를 사용합니까? (0) | 2020.10.17 |
경고를 오류로 처리하지 않고 컴파일하는 방법은 무엇입니까? (0) | 2020.10.17 |