primes: List[int] = [] captain: str # Note: no initial value! class Starship: stats: Dict[str, int] = {}
함수 주석과 마찬가지로 Python 인터프리터는 변수 주석에 특별한 의미를 부여하지 않고 클래스 또는 모듈의 특수 속성
__ annotations __
에만 저장합니다. 정적으로 형식화 된 언어의 변수 선언과 달리 주석 구문의 목표는 추상 구문 트리 및__ annotations __
속성을 통해 타사 도구 및 라이브러리에 대한 구조화 된 형식 메타 데이터를 쉽게 지정할 수있는 방법을 제공하는 것입니다.
captain : str
및 class Starship
예제를 따르지만 마지막 예제는 확실하지 않습니다. primes : List [int] = []
설명? 정수만 허용하는 빈 목록을 정의하고 있습니까?
해결 방법
:
와 =
사이의 모든 것은 유형 힌트이므로 primes
는 실제로 List [int]
로 정의됩니다. 처음에는 빈 목록으로 설정됩니다 (그리고 stats
는 처음에는 Dict [str, int]
로 정의 된 빈 사전입니다).
List
및 Dict
는 모두 Generic 유형으로, 특정 (구체적인) 콘텐츠가 포함 된 목록 또는 사전 매핑이 있음을 나타냅니다.
List
의 경우 목록에있는 모든 요소의 유형 인 '인수'( [...]
구문의 요소)가 하나만 있습니다. Dict
의 경우 첫 번째 인수는 키 유형이고 두 번째 인수는 값 유형입니다. 따라서 primes
목록의 모든 값은 정수이고 stats
사전의 모든 키-값 쌍은 < code> (str, int) 쌍, 문자열을 정수로 매핑합니다.
함수에 대한 유형 힌트와 마찬가지로 그 사용은 선택 사항이며 주석 으로 간주됩니다 (이를 연결할 객체가있는 경우 모듈의 전역, 클래스의 속성, 함수의 지역은 아님). __ annotations __
속성을 통해 검사 할 수 있습니다. 이러한 주석에 임의의 정보를 첨부 할 수 있으며 유형 힌트 정보에 엄격하게 제한되지 않습니다.
참조 페이지 https://stackoverflow.com/questions/39971929
'파이썬' 카테고리의 다른 글
파이썬 "virtualenv : command not found"오류가 발생하지만 설치 위치는 PYTHONPATH에 있습니다. (0) | 2020.10.29 |
---|---|
파이썬 0에서 9 사이의 임의의 정수 생성 (0) | 2020.10.29 |
파이썬 AttributeError : 'urllib'모듈에 'urlopen'속성이 없습니다. (0) | 2020.10.29 |
파이썬 Truthy와 Falsy는 무엇입니까? 참 및 거짓과 어떻게 다릅니 까? (0) | 2020.10.29 |
파이썬 Python-임시 파일에서 쓰기 및 읽기 (0) | 2020.10.28 |
댓글