파 이 썬 타 입 검사 도구 4 가지 중 어느 것 을 선택 하 시 겠 습 니까?

마이크로소프트 는 Github 에서 Python 정적 유형 검사 도 구 를 개 원 했 습 니 다.pyright 는 지역 사회 에서 많은 관심 을 끌 었 습 니 다.
마이크로소프트 가 오픈 소스 프로젝트 에 참여 하 는 힘 이 점점 커지 고 있다.Github 을 인수 하 는 큰 전략 적 야심 은 말 할 것 도 없고 그의 집에 서 오픈 소스 된 VS Code 편집기 만 말 할 것 이다.원숭이 계 에서 이미 수많은 가루 를 잘 랐 고 우리 Python 권 의 인기 있 는 사람 인 Kenneth Reitz(여러 개의 오픈 소스 프로젝트 의 작가,requests,requests-html,responder 등)도 이에 대해 칭찬 을 아 끼 지 않 았 다.
지금 시 작 된 Pyright 는 입 소문 이 좋 습 니 다.어떤 능력 이 있 는 지 살 펴 보 겠 습 니 다.그리고 다른 몇 가지 유형의 검사 도 구 를 소개 하 겠 습 니 다.
모두 가 알다 시 피 Python 은 동적 유형 언어 로 실행 기간 에 야 변수의 실제 유형 을 알 수 있다.이것 은 바로 동태 적 언어의 특색 이지 만 팀워크 나 대형 프로젝트 에서 유지 하 는 대가 도 불가피 하 다.속담 에'동태 가 일시 적 으로 시원 하고 화장 장 을 재 구성 하 는 것'이 라 고 한다.
파 이 썬 은 이미 2006 년 PEP-3107 에서 함수 주해 기능 을 출시 해 3.0 버 전 으로 떨 어 졌 다.그리고 3.5 버 전에 서 Python 은 정적 유형 검사 의 문법(즉,PEP-484,type hints)을 계속 도입 했다.2014 년 의 PEP-483 은'The Theory of Type Hints'라 는 제목 으로 이론 적 으로 요약 했다.이후 PEP-526,PEP-544 가 속속 제 기 돼 유형 검사 의 규범 이 다양 해 졌 다.
유형 검사 의 장점 은 일찍 검사 하고 유형의 오 류 를 미리 발견 하여 코드 의 일치 성과 유지 가능성 을 강화 하 는 것 이다.(그리고 탈모 방지,야옹)

#     

def greeting(name):

    return 'Hello ' + name

 

#     

def greeting(name: str) -> str:

    return 'Hello ' + name
상례 에서 보 듯 이 검 사 를 추가 하면 컴 파일 기간 에 입력 과 반환 값 이 문자열 형식 인지 판단 할 수 있 습 니 다.
마이크로소프트 가 pyright 를 출시 하기 전에 주류 의 정적 검사 도 구 는 세 가지 가 있 습 니 다.공식 my py,구 글 에서 나 온 pytype,페 이 스 북 에서 나 온 pyre-check 입 니 다.세 세력 이 정립 하 는 국면 이 깨 질 것 이다.
pyright 문 서 는 다음 과 같은 특징 이 있다 고 선언 합 니 다.
속도 가 빠르다.my py 및 기타 Python 으로 쓴 검사 도구 에 비해 속 도 는 5 배,심지어 더 많 습 니 다.Python 환경 에 의존 하지 않 습 니 다.이것 은 TypeScript 로 node 에서 실행 되 며 Python 환경 이나 제3자 패키지 에 의존 하지 않 습 니 다.배치 성 이 강하 다.자 유 롭 게 설정 할 수 있 고 서로 다른 실행 환경(PYTHONPATH 설정,Python 버 전,플랫폼 목표)을 지정 할 수 있 습 니 다.검사 항목 이 완비 되다.유형 검사 및 기타 문법 항목 의 검사(예 를 들 어 PEP-484,PEP-526,PEP-544)를 지원 하고 함수 반환 값,클래스 변수,전역 변수의 검 사 를 지원 하 며 조건 순환 문 명령 행 도 구 를 검사 할 수 있 습 니 다.이것 은 두 개의 VS Code 플러그 인 을 포함 합 니 다.명령 행 도구 와 언어 서버 프로 토 콜(Language Server Protocol)에 Stubs 가 내장 되 어 있 습 니 다.Typeshed 의 복사 본 을 사용 합 니 다.(주:정적 pyi 파일 을 사용 하여 내 장 된 모듈,표준 라 이브 러 리 와 세 가지)언어 서비스 특성 을 검사 합 니 다.서 스 펜 션 알림 정보,기호 정의 점프,실시 간 편집 피드백
그런 의미 에서 강하 지 않다 고 할 수 는 없다.사실 pyright 는"거인 의 어깨 위 에 서 있다"며 다양한 기능 을 다른 선배 들 에 게 물 려 받 은 것 같다.
이 어 공식 마 이 피 를 보면'Python 의 아버지'Guido van Rossum 이 직접 개발 에 참여 하 는 것 이 가장 주류 의 선택 이 고 일찍 출시 되 며 사용자 기수 가 많 고 문서 와 지역사회 경험 도 가장 풍부 하 다.
통합 IDE 의 경우 모든 주류 편집기 가 지원 합 니 다.PyCharm,Vim,Emacs,Sublime Text,VS Code,Atom.
이 어 구 글 의 pytype 을 살 펴 보 자.문서 에 따 르 면 다음 과 같다.
일반적인 오 류 를 표시 합 니 다.예 를 들 어 맞 춤 법 오류,함수 호출 오류 등 사용자 정의 형식 주 해 를 강화 합 니 다.pyi 파일 생 성 형식 주 해 를 지원 합 니 다.
문 서 를 보 니'오류 소음 감소'라 는 기능 이 있 습 니 다.수정 할 필요 가 없 는 오류 에 대해 설명 을 추가 하여 유형 검 사 를 없 앨 수 있 습 니 다.
그 밖 에 또 하나의 고려 도 좋 습 니 다.유형 검 사 를 쓰기 위해 모듈 에 다른 모듈 을 추가 로 도입 할 수 있 습 니 다.후자 에 대해 pytype 은 이 를 숨 길 방법 이 있 고 유형 검 사 를 할 때 만 불 러 옵 니 다.
마지막 으로 페 이 스 북 의 pyre-check 을 소개 하 겠 습 니 다.작년 에 시 작 된 것 이 고 호평 도 받 았 습 니 다.
기본 적 인 기능 점 은 대동소이 하지만 그것 도 하 이 라이트 가 있다.pyre-check 은 Watchman 모듈 을 통합 할 수 있 습 니 다.이'관찰자'는 코드 파일 을 감청 하고 수정 사항 을 추적 합 니 다.마이크로소프트 의 pyright 는 watch 모드 가 있 습 니 다.이 점 을 흡수 하고 더 좋 을 것 입 니 다.(Watchman 과 다른 의존 을 추가 로 설치 할 필요 가 없 기 때 문 입 니 다)
pyre-check 에는 또 하나의 하 이 라이트 가 있 습 니 다.query 매개 변 수 는 원본 코드 에 대해 부분 적 인 지역 적 검 사 를 할 수 있 습 니 다.예 를 들 어 특정한 줄 의 표현 식 유형 을 조회 하고 하나의 유형의 모든 방법 을 조회 하 며 목록 으로 돌아 가 는 등 전면적 인 검 사 를 피 할 수 있 습 니 다.
4 가지 유형 검사 도구 소개 가 끝 났 습 니 다.다음은 개요 대비 입 니 다.

그들의 성능 은 어 떻 습 니까?pyright 가 말 한 것 처럼 속 도 는 다른 몇 개의 5 배 입 니까?관심 있 는 친구 들 은 한번 해 보 세 요.
이상 은 4 가지 Python 유형 검사 도구 입 니 다.어떤 것 을 선택 하 시 겠 습 니까?파 이 썬 유형 검사 도구 에 대한 자세 한 내용 은 다른 관련 글 을 주목 하 세 요!

좋은 웹페이지 즐겨찾기