프로그래밍 언어/Python

파이썬 함수 정의에서 '->' 의 의미

Rateye 2021. 10. 8. 10:43
728x90
반응형
질문 : 파이썬 함수 정의에서->는 무엇을 의미합니까?

최근 Python 3.3 문법 사양을 살펴보면서 흥미로운 사실을 발견했습니다.

funcdef: 'def' NAME parameters ['->' test] ':' suite

선택적인 '화살표'블록은 Python 2에 없었고 Python 3에서 그 의미에 관한 정보를 찾을 수 없었습니다. 이것이 올바른 Python이며 인터프리터가 허용합니다.

def f(x) -> 123:
    return x

나는 이것이 일종의 전제 조건 구문이라고 생각했지만 다음과 같습니다.

  • x 는 아직 정의되지 않았기 때문에 여기서 테스트 할 수 없습니다.
  • 화살표 뒤에 무엇을 입력하든 (예 : 2 < 1 ) 함수 동작에는 영향을주지 않습니다.

이 구문 스타일에 익숙한 사람이 설명 할 수 있습니까?

답변

함수 주석 입니다.

더 자세하게, Python 2.x에는 다양한 유형의 객체에 메타 데이터 문자열을 첨부 할 수있는 독 스트링이 있습니다. 이것은 놀랍도록 편리하므로 Python 3는 매개 변수와 반환 값을 설명하는 함수에 메타 데이터를 첨부 할 수 있도록하여 기능을 확장합니다.

선입견 된 사용 사례는 없지만 PEP는 몇 가지를 제안합니다. 매우 편리한 방법 중 하나는 예상되는 유형으로 매개 변수에 주석을 달 수 있도록하는 것입니다. 그러면 주석을 확인하거나 인수를 올바른 유형으로 강제하는 데코레이터를 쉽게 작성할 수 있습니다. 또 다른 방법은 독 스트링으로 인코딩하는 대신 매개 변수 별 문서를 허용하는 것입니다.

출처 : https://stackoverflow.com/questions/14379753/what-does-mean-in-python-function-definitions
728x90
반응형