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 문 서 는 다음 과 같은 특징 이 있다 고 선언 합 니 다.
이 어 공식 마 이 피 를 보면'Python 의 아버지'Guido van Rossum 이 직접 개발 에 참여 하 는 것 이 가장 주류 의 선택 이 고 일찍 출시 되 며 사용자 기수 가 많 고 문서 와 지역사회 경험 도 가장 풍부 하 다.
통합 IDE 의 경우 모든 주류 편집기 가 지원 합 니 다.PyCharm,Vim,Emacs,Sublime Text,VS Code,Atom.
이 어 구 글 의 pytype 을 살 펴 보 자.문서 에 따 르 면 다음 과 같다.
문 서 를 보 니'오류 소음 감소'라 는 기능 이 있 습 니 다.수정 할 필요 가 없 는 오류 에 대해 설명 을 추가 하여 유형 검 사 를 없 앨 수 있 습 니 다.
그 밖 에 또 하나의 고려 도 좋 습 니 다.유형 검 사 를 쓰기 위해 모듈 에 다른 모듈 을 추가 로 도입 할 수 있 습 니 다.후자 에 대해 pytype 은 이 를 숨 길 방법 이 있 고 유형 검 사 를 할 때 만 불 러 옵 니 다.
마지막 으로 페 이 스 북 의 pyre-check 을 소개 하 겠 습 니 다.작년 에 시 작 된 것 이 고 호평 도 받 았 습 니 다.
기본 적 인 기능 점 은 대동소이 하지만 그것 도 하 이 라이트 가 있다.pyre-check 은 Watchman 모듈 을 통합 할 수 있 습 니 다.이'관찰자'는 코드 파일 을 감청 하고 수정 사항 을 추적 합 니 다.마이크로소프트 의 pyright 는 watch 모드 가 있 습 니 다.이 점 을 흡수 하고 더 좋 을 것 입 니 다.(Watchman 과 다른 의존 을 추가 로 설치 할 필요 가 없 기 때 문 입 니 다)
pyre-check 에는 또 하나의 하 이 라이트 가 있 습 니 다.query 매개 변 수 는 원본 코드 에 대해 부분 적 인 지역 적 검 사 를 할 수 있 습 니 다.예 를 들 어 특정한 줄 의 표현 식 유형 을 조회 하고 하나의 유형의 모든 방법 을 조회 하 며 목록 으로 돌아 가 는 등 전면적 인 검 사 를 피 할 수 있 습 니 다.
4 가지 유형 검사 도구 소개 가 끝 났 습 니 다.다음은 개요 대비 입 니 다.
그들의 성능 은 어 떻 습 니까?pyright 가 말 한 것 처럼 속 도 는 다른 몇 개의 5 배 입 니까?관심 있 는 친구 들 은 한번 해 보 세 요.사용 소감 이 있 으 시 면 댓 글 을 남 겨 주세요.
항목 주소:
https://github.com/python/mypy
https://github.com/Microsoft/pyright
https://github.com/google/pytype
https://github.com/facebook/pyre-check
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
로마 숫자를 정수로 또는 그 반대로 변환그 중 하나는 로마 숫자를 정수로 변환하는 함수를 만드는 것이었고 두 번째는 그 반대를 수행하는 함수를 만드는 것이었습니다. 문자만 포함합니다'I', 'V', 'X', 'L', 'C', 'D', 'M' ; 문자열이 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.