지정된 유형의 컬렉션을 암시하는 형식
Python 3의 함수 주석을 사용하여 PyCharm 및 기타 IDE에서 유형 힌트를 위해 동종 목록(또는 다른 컬렉션)에 포함된 항목의 유형을 지정할 수 있습니까?
int 목록에 대한 의사 피톤 코드 예제:
def my_func(l:list<int>):
pass
닥스트링을 사용하는게 가능한거 알아요...
def my_func(l):
"""
:type l: list[int]
"""
pass
가능하면 주석 스타일을 선호합니다.
내 질문에 대한 답변; TLDR의 답변은
아니요. 네, 그렇습니다.
업데이트 2
2015년 9월, Python 3.5는 Type Hents를 지원하며 출시되었으며 새로운 타이핑 모듈을 포함하고 있습니다.이를 통해 컬렉션에 포함된 유형을 지정할 수 있습니다.2015년 11월 현재 JetBrains PyCharm 5.0은 아래 그림과 같이 유형 힌트를 포함하도록 Python 3.5를 완전히 지원합니다.
업데이트 1
2015년 5월 현재 PEP0484(타입 힌트)가 정식으로 승인되었습니다.구현 초안은 amv/typehinting 아래의 github에서도 이용할 수 있습니다.
원답
2014년 8월 현재 Python 3 타입의 주석을 사용하여 컬렉션 내 타입을 지정할 수 없음을 확인하였습니다(예: 문자열 목록).
reStructured 등의 형식화된 문서 문자열 사용텍스트 또는 스핑크스는 다양한 IDE에서 지원 가능한 대체 수단입니다.
또한 Guido는 mypy의 정신으로 타입 주석을 확장하는 아이디어에 대해 숙고하고 있는 것으로 보인다:http://mail.python.org/pipermail/python-ideas/2014-August/028618.html
업데이트: 다른 답변을 참조하십시오. 이 답변은 오래되었습니다.
답변(2015년):
이제 Python 3.5가 공식적으로 출시되었으므로 Type Hents 지원 모듈과 일반 컨테이너에 관련된 "type"이 있습니다.
즉, 다음과 같은 작업을 수행할 수 있습니다.
from typing import List
def my_func(l: List[int]):
pass
Python 3.9에서 기본 제공 유형은 유형 주석과 관련하여 일반적입니다(PEP 585 참조).이를 통해 요소의 유형을 직접 지정할 수 있습니다.
def my_func(l: list[int]):
pass
Python 3.9 이전 버전에서는 다양한 툴이 이 구문을 지원할 수 있습니다.런타임에 주석을 검사하지 않으면 따옴표 또는 따옴표를 사용하여 유효합니다.__future__.annotations
.
# quoted
def my_func(l: 'list[int]'):
pass
# postponed evaluation of annotation
from __future__ import annotations
def my_func(l: list[int]):
pass
타입 코멘트는 PEP 484 이후 추가되었습니다.
from . import Monitor
from typing import List, Set, Tuple, Dict
active_monitors = [] # type: List[Monitor]
# or
active_monitors: List[Monitor] = []
# bonus
active_monitors: Set[Monitor] = set()
monitor_pair: Tuple[Monitor, Monitor] = (Monitor(), Monitor())
monitor_dict: Dict[str, Monitor] = {'codename': Monitor()}
# nested
monitor_pair_list: List[Dict[str, Monitor]] = [{'codename': Monitor()}]
PyCharm에서 Python 3.6.4로 동작하고 있습니다.
BDFL의 지원으로 python(아마 3.5)이 함수 주석을 통해 유형 힌트에 표준화된 구문을 제공할 것이 거의 확실해졌다.
https://www.python.org/dev/peps/pep-0484/
PEP에서 언급한 바와 같이 mypy라고 하는 실험적인 타입 체커가 있습니다(pylint와 비슷하지만 타입의 경우). 이미 이 표준을 사용하고 있으며 새로운 구문을 필요로 하지 않습니다.
언급URL : https://stackoverflow.com/questions/24853923/type-hinting-a-collection-of-a-specified-type
'source' 카테고리의 다른 글
MariaDB Columnstore 데이터 cpimport의 "열 파일을 여는 중 오류" (0) | 2022.09.11 |
---|---|
텍스트 영역의 특이한 모양? (0) | 2022.09.11 |
Ubuntu에 MariaDB 설치: "패키지를 찾을 수 없습니다." (0) | 2022.09.11 |
Java: int 배열이 0이 아닌 요소로 초기화됨 (0) | 2022.09.11 |
누락된 상위 디렉토리와 함께 새 파일을 만드는 방법은 무엇입니까? (0) | 2022.09.11 |