Pylint로 Python 코드 개선

Linting이 모든 문제를 자동으로 해결하지는 않지만 코드를 개선하기 위해 추가할 수 있는 흥미로운 단계입니다.

부인 성명



도구에 대한 소개일 뿐입니다. 여기에서 다루지 않을 명령에 대한 많은 옵션이 있습니다.

Linting 대 디버깅



린팅과 디버깅의 차이점을 아는 것이 중요합니다.

린팅에는 정적 분석이 포함되며 디버깅을 통해 코드를 실행하는 동안 오류를 포착할 수 있습니다.

린터는 디버거를 대체할 수 없습니다. 코드를 동적으로 분석하기 위한 것이 아닙니다.

그래도 최소한의 노력으로 코드를 크게 개선할 수 있습니다.
  • 나쁜 습관을 잡아낼 수 있습니다
  • .
  • 가독성 향상
  • 더블론을 발견할 수 있습니다

  • 다른 장점이 있지만 이것들은 흥미로울 것입니다.

    Python 코드를 린트하는 방법



    평소와 같이 많은 솔루션이 있지만 가장 쉬운 솔루션은 다음과 같이 설치하는 것입니다Pylint.
  • 간단한 패키지로 설치할 수 있습니다: pip install pylint
  • 그것은 great documentation
  • 기본 설정으로 시작하기 쉽습니다
  • .
  • 보푸라기 규칙을 사용자 정의할 수 있습니다
  • .
  • 플러그인으로 확장할 수 있습니다
  • .

    사용하려면 다음을 입력하십시오.

    pip install pylint
    pylint mymodule.py
    


    보푸라기 오류를 수정하여 개선할 수 있는 점수를 받게 됩니다. 어떤 타당한 이유로 제안된 수정 사항을 적용하지 않으려는 경우 걱정하지 마십시오. 다양한 수준에서 비활성화할 수 있습니다.
  • (홈 디렉토리의 루트에 있는) ~/.pylintrc 파일에서 전역적으로
  • 루트에 사용자 정의.pylintrc 파일이 있는 프로젝트당
  • 코드에서 # pylint: disable-next=로 시작하는 특수 주석 뒤에 오류 코드
  • 가 있음

    주의: /etc/pylintrc 또는 .config/pylintrc와 같은 다른 디렉토리가 있습니다.

    Pylint는 각 오류에 대한 특정 코드를 제공합니다. 예를 들어 missing-function-docstring는 함수에 필요한 문서가 포함되어 있지 않음을 의미합니다.

    펩8?



    Pylint는 PEP8 스타일을 따릅니다.

    이 지침은 Python의 코딩 표준입니다. 그렇기 때문에 대부분의 Python 스크립트에서 다음을 찾을 수 없습니다.

    import os, sys
    


    그러나 이것은 대신:

    import os
    import sys
    


    Pylint는 이러한 규칙을 사용하여 비표준 코드 및 기타 나쁜 관행을 찾아냅니다.

    추가 작업이 너무 많습니다!



    이는 명백히 추가 단계이지만 최선을 다해 추가 패키지를 사용하여 작업 속도를 높일 수 있습니다.

    pip install autopep8
    autopep8 --aggressive mymodule.py
    


    많은 보푸라기 오류를 자동으로 수정할 수 있습니다.

    하지만 조심하세요. 이름에서 알 수 있듯이 --aggressive 모드는 좀 과할 수 있습니다...

    IDE의 파이린트



    Pylint는 명령줄 도구로 사용할 수 있지만 선호하는 IDE에 직접 통합할 수도 있습니다. 참조this link

    사전 커밋으로 Pylint



    pre-commit hook 을 사용하여 무언가를 커밋하기 전에 코드를 확인할 수 있습니다.

    이러한 접근 방식은 linting 규칙을 준수하지 않는 개발 및 블록 커밋에서 매우 일반적입니다.

    마무리



    Pylint를 사용하면 프로세스를 개선할 수 있습니다. 정적 분석이 확실히 궁극적인 접근 방식은 아니지만 그만한 가치가 있습니다.

    좋은 웹페이지 즐겨찾기