2014-07-16 4 views
-3

이 코드는 파이썬 튜토리얼 문서에서입니다 - 4.7.7. Function Annotations : 나는 "햄"와 "계란"다음에 콜론 (:가) 무엇을 모르는다음 파이썬 코드의 콜론은 무엇을합니까?

def f(ham: 42, eggs: int = 'spam') -> "Nothing to see here": 
    print("Annotations:", f.__annotations__) 
    print("Arguments:", ham, eggs) 

. 나에게 설명해주세요.

+1

음, 당신은 이미 그것을 설명 워드 프로세서의 일부에 연결 : 다음 예는 위치 인수 키워드 인수 및 반환 값 말도 주석이있다? –

+2

멍청이가 아니어도 대답은 말 그대로 당신이 제공 한 링크입니다. "기능 주석은 사용자 정의 함수에 대한 임의의 메타 데이터 정보로 옵션으로 제공되며, Python 자체도 표준 라이브러리도 함수 주석을 사용하지 않습니다.이 섹션에서는 구문을 보여줍니다. 타사 프로젝트는 문서, 유형 검사 및 기타 용도. " – TheSoundDefense

+7

이 질문은 답변 자체가 질문 자체 내에서 연결되어 있기 때문에 주제 외의 것으로 보입니다. – MattDMo

답변

1

기본적으로 임의의 메타 데이터를 함수 인수 및/또는 반환 값에 추가하는 방법입니다. --Lukas Graf

문자 그대로 함수, 인수 및 기타 물건에 객체를 첨부하는 방법입니다. 문서화, 유효성 검사 또는 무의미한 데이터를 추가하는 데 사용할 수 있습니다.

가 참조 --poke : PEP-3107

직접 문서에서 : 완전히 선택적

기능 주석, 임의의 메타 데이터에 사용자 정의 기능에 대한 정보를 . 파이썬 자체 나 표준 라이브러리는 함수 어노테이션을 사용하지 않습니다. 이 섹션 은 구문을 보여줍니다. 타사 프로젝트는 설명서, 유형 확인 및 기타 용도로 기능 주석을 자유롭게 사용할 수 있습니다.

주석은 사전으로서 기능의 __annotations__ 속성에 저장되며 기능의 다른 부분에는 영향을 미치지 않습니다. 매개 변수 주석은 매개 변수 이름 다음에 콜론으로 정의되고 그 뒤에 주석이 인 값으로 계산됩니다. 반환 주석은 ->, 리터럴 다음에 매개 변수 목록과 def 문 끝을 나타내는 콜론 사이의 표현식으로 정의됩니다.

>>> def f(ham: 42, eggs: int = 'spam') -> "Nothing to see here": 
...  print("Annotations:", f.__annotations__) 
...  print("Arguments:", ham, eggs) 
... 
>>> f('wonderful') 
Annotations: {'eggs': <class 'int'>, 'return': 'Nothing to see here', 'ham': 42} 
Arguments: wonderful spam 
+1

이것은 OP가 이미 링크 된 문서의 축약 된 잘라내 기와 붙여 넣기입니다. – jonrsharpe

+1

예. 유용한 의견과 관련되고보다 유용한 PEP 링크와 결합됩니다. – jgritty

+0

고마워, 이제 알았다. PEP-3107 문서는 매우 철저했습니다! – ttriet204

관련 문제