2010-12-09 15 views
26

pyLint는 파이썬 코드의 분석을 실행하기위한 좋은 도구처럼 보입니다. 그러나 우리의 주 목적은 코딩 규칙이 아닌 잠재적 인 버그를 잡는 것입니다. 모든 pyLint 검사를 활성화하면 많은 소음이 발생합니다. 사용하는 pyLint 기능 세트에 대한 제안은 효과가 있습니까?PyLint 모범 사례?

답변

23

당신은 /를 통해 원하지 않는 오류, 경고를 차단할 수 있습니다

pylint --disable = [오류, 오류]

내가 차단 한 http://www.logilab.org/card/pylintfeatures

에서 이러한 (설명 W0511 : FIXME 또는 XXX와 같은 경고 메시지가 감지 될 때 사용

W0142 : 사용됨 * 또는 * magic * 사용 된 * 또는 * magic * 인수를 전달하기 위해 * args 또는 ** kwargs를 사용하여 함수 또는 메서드를 호출 할 때 사용합니다. 조심해서 사용해야합니다.

W0141 : 사용 된 기본 제공 함수 % r 검정색 나열된 기본 제공 함수를 사용할 때 사용됩니다 (잘못된 함수 옵션 참조). 보통 검정색으로 나열된 함수는 map이나 filter와 같은 것들이며, 파이썬은리스트 이해력과 같은 좀 더 깨끗한 대안을 제공합니다.

R0912 : 너무 많은 분기 (% s/% s) 함수 또는 메소드에 분기가 너무 많아서 따라 가기가 어려울 때 사용됩니다.

R0913 : 인수가 너무 많습니다 (% s/% s) 함수 나 메서드가 너무 많은 인수를 사용하는 경우에 사용됩니다.

R0914 : 너무 많은 로컬 변수 (% s/% s) 함수 또는 메소드에 너무 많은 로컬 변수가있는 경우에 사용됩니다.

R0903 : 공개 메서드가 너무 적을 때 사용됩니다 (% s/% s). 클래스에 공개 메서드가 너무 적 으면 사용하는 것이 좋습니다.

W0212 : 클라이언트 클래스의 보호 된 멤버 % s에 액세스 보호 된 멤버 (즉, 이름이 밑줄로 시작하는 클래스 멤버)가 정의 된 클래스의 클래스 또는 하위 클래스 외부에 액세스하는 경우에 사용됩니다.

W0312 : % ss 대신 % ss와 (과) 일치하는 들여 쓰기가 있습니다. 모듈에 탭과 공백이 섞여있을 때 사용됩니다.

C0111 : 누락 된 docstring 모듈, 함수, 클래스 또는 메소드에 docstring이없는 경우에 사용됩니다. 같은 특별한 방법은 docstring이 필요하지 않습니다.

C0103 : 잘못된 이름 "% s"(% s과 일치해야 함) 이름이 해당 유형 (상수, 변수, 클래스 ...)과 연결된 정규식과 일치하지 않을 때 사용됩니다.

+2

특정 유형의 메시지를 사용하지 않도록 설정하는 방법에 대한 설명은 정확하지만 억압 된 오류의 특정 선택 사항 중 일부는 논란의 여지가 있습니다. "너무 많은 로컬 변수/가지"와 같은 항목은 거대한 붉은 깃발입니다. –

+0

'-d, --disable' 옵션은'[]'문자가있는 파이썬리스트가 아닙니다; 쉼표로 구분 된 목록 일뿐입니다. 그래서 --disable = [C0111, R0912]'; '--disable = C0111, R0912'을 사용하십시오. – DrStrangepork

7

-E는 pylint가 오류라고 생각하는 것만 표시합니다 (즉, 경고가 없거나 규칙이 없습니다 ...).)

지속적으로 사용하지 않도록 경고 및 규칙에
8

:

  1. pylint --generate-rcfile > ~/.pylintrc
  2. 편집 ~/.pylintrc
  3. 의 주석 disable=을 실행하여 ~/.pylintrc 파일을 생성하고 같은 그렙를 사용하여 disable=W,C
2

에 행을 변경해 :

pylint my_file.py | grep -v "^C"