본문 바로가기
파이썬

파이썬 Python 3.6의 변수 주석은 무엇입니까?

by º기록 2020. 10. 29.
반응형



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

 

 

반응형

댓글