Python 3.X (전용)는 또한 함수 정의를 일반화 하여 확장에서 사용 하기 위해 인수 및 반환 값에 객체 값으로 주석을 달 수 있습니다
.
함수 값에 대해 더 명확하게 설명 할 메타 데이터입니다.
주석은 :value
인수 이름 뒤에 그리고 기본값 앞에 그리고 ->value
인수 목록 뒤에 코드화됩니다 .
그것들은 __annotations__
함수 의 속성으로 수집 되지만 파이썬 자체에서 특별하게 취급되지는 않습니다.
>>> def f(a:99, b:'spam'=None) -> float:
... print(a, b)
...
>>> f(88)
88 None
>>> f.__annotations__
{'a': 99, 'b': 'spam', 'return': <class 'float'>}
출처 : Python Pocket Reference, 5 판
예:
이 typeannotations
모듈은 파이썬 코드의 타입 검사 및 타입 추론을위한 툴 세트를 제공합니다. 또한 함수 및 객체에 주석을 달 때 유용한 유형 세트를 제공합니다.
이 도구는 주로 린터, 코드 완성 라이브러리 및 IDE와 같은 정적 분석기에서 사용하도록 설계되었습니다. 또한 런타임 검사를위한 데코레이터가 제공됩니다. 런타임 타입 검사는 파이썬에서 항상 좋은 생각은 아니지만 어떤 경우에는 매우 유용 할 수 있습니다.
https://github.com/ceronman/typeannotations
타이핑으로 더 나은 코드를 작성하는 방법
입력하면 정적 코드 분석을 수행하여 코드를 프로덕션으로 보내기 전에 유형 오류를 포착하고 명백한 버그를 방지 할 수 있습니다. 소프트웨어 수명주기의 일부로 도구 상자에 추가 할 수있는 mypy와 같은 도구가 있습니다. mypy는 코드베이스를 부분적으로 또는 완전히 실행하여 올바른 유형을 확인할 수 있습니다. mypy는 또한 함수에서 값이 반환 될 때 None 유형 확인과 같은 버그를 감지하는 데 도움이됩니다. 입력하면 코드가 더 깨끗해집니다. 문서 문자열에 유형을 지정하는 주석을 사용하여 코드를 문서화하는 대신 성능 비용없이 유형을 사용할 수 있습니다.
클린 파이썬 : 파이썬의 우아한 코딩 ISBN : ISBN-13 (pbk) : 978-1-4842-4877-5
PEP 526-변수 주석 구문
https://www.python.org/dev/peps/pep-0526/
https://www.attrs.org/en/stable/types.html