2016-11-17 2 views
2

파이썬 3에서는 함수의 매개 변수에 대한 설명을 추가 할 수 있습니다Python 3에서 인수 설명과 형식 힌트를 조합 할 수 있습니까?

def foo(host: 'ip address for connection') 
    cool_stuff() 

당신은 나중에 mypy 확인할 수 있습니다 예상 유형 제공 할 수

def foo(host: str) 
    cool_stuff() 

모두에서 매우 유용 내 눈을 - 둘 다 결합 할 수있는 방법이 있습니까 여전히 mypy 일관성을 확인하게 할 수 있을까요?

답변

4

아니요, 부분적으로 이유가 PEP 484 인 이유는 기능 주석, 유형 힌트를 명확하고 단독으로 사용하기 위해서입니다.

구체적으로 section about existing uses, 그것은 상태 : 인수의

한 줄은 PEP 3107 명시 적 기능 주석에 임의의 표현의 사용을 지원하는 지적한다. 새로운 제안은 PEP 3107의 사양과 호환되지 않는 것으로 간주됩니다.

및 상태에 간다 :

우리는 결국 주석의 유일한 사용이 될 것이다 타입 힌트를 희망 할 수 있지만, 추가 논의와의 초기 롤 아웃 후 중단 기간이 필요합니다 파이썬으로 타이핑 모듈. 때문에 코드의 가독성 감소로 간주하지만, 분명히 거부 된 특정하는 두

대안 : 이러한 모든 옵션에도 불구하고

는 제안을 할 수 있도록 순환 된 타입 힌트와 공존하는 주석의 다른 형태 개별적인 주장들. 하나의 제안은 주어진 인자에 대한 주석이 사전 리터럴이라면, 각 키는 다른 형태의 주석을 나타내며, 키 'type'은 타입 힌트에 사용될 것이라고 제안한다. 이 아이디어와 그 변형의 문제점은 표기법이 매우 시끄럽고 읽기가 어렵다는 점입니다.

둘 다 허용하면이 PEP의 요점을 깨고 주석 사용을 조각 내게됩니다. 마지막으로, 최상의 옵션은 매개 변수를 문서화하는 데 좋은 ol 'docstring을 사용하고 유형 힌트에만 기능 주석을 사용하는 것입니다.