반응형
Pylint의 Cell-var-from-loop 경고
다음 코드의 경우 :
for sort_key, order in query_data['sort']:
results.sort(key=lambda k: get_from_dot_path(k, sort_key),
reverse=(order == -1))
Pylint가 오류를보고했습니다.
루프에 정의 된 셀 변수 sort_key (cell-var-from-loop)
아무도 여기서 무슨 일이 일어나고 있는지 힌트를 줄 수 있습니까? pylint 소스 코드에서 설명은 다음과 같습니다.
클로저에 사용되는 변수는 루프에서 정의됩니다. 이렇게하면 closed-over 변수에 대해 동일한 값을 사용하는 모든 클로저가 발생합니다.
그러나 나는 그것이 의미하는 바에 대한 단서가 없습니다. 누구든지 문제의 예를 들어 줄 수 있습니까?
함수가 실제로 호출 될 때 sort_key
의 본문에있는 이름 lambda
이 조회되므로 sort_key
가장 최근 의 값 이 표시됩니다 . sort
즉시 호출하므로 sort_key
결과 함수 객체가 사용되기 전에 의 값이 변경되지 않으므로 경고를 무시해도됩니다. 무음으로 설정하려면 sort_key
매개 변수의 기본값을 다음과 같이 설정할 수 있습니다 lambda
.
results.sort(key=lambda k, sk=sort_key: get_from_dot_path(k, sk),
reverse=(order == -1))
참고 URL : https://stackoverflow.com/questions/25314547/cell-var-from-loop-warning-from-pylint
반응형
'programing tip' 카테고리의 다른 글
자바 스크립트 문자열 유형과 문자열 객체의 차이점은 무엇입니까? (0) | 2020.11.22 |
---|---|
지도가없는 Google 장소 라이브러리 (0) | 2020.11.21 |
iFrame의 크기를 자동으로 조정하는 방법은 무엇입니까? (0) | 2020.11.21 |
형식화 된 메모리 뷰에 권장되는 메모리 할당 방법은 무엇입니까? (0) | 2020.11.21 |
C ++ 14 자리 구분자에 공백 문자가 선택되지 않은 이유는 무엇입니까? (0) | 2020.11.21 |