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
반응형
'프로그래밍 언어 > Python' 카테고리의 다른 글
Python에서 "pip"로 psycopg2를 설치하는 방법 (0) | 2021.10.12 |
---|---|
Python : 딕셔너리가 비어 있는지 확인하는 방법 (0) | 2021.10.08 |
파이썬에서 정수를 문자열로 변환 (0) | 2021.10.08 |
Pandas에서 열 이름 바꾸기 (0) | 2021.10.08 |
파이썬의 람다에서 "if"를 수행하는 방법 (0) | 2021.10.08 |