함수 정의할 때 argument에 콜론이 있으면 무슨 의미인가요?
조회수 2984회
checkiO로 놀고있는데 제시된 함수에
def data(password : str): 라고 되있기도 하고
def data(password : str) -> str : 라고 되있기도 합니다.
저는 파이썬 배운지 얼마 안된 초짜라 def data(password) : 이런 식으로 변수값만 지정해주는 것만 알고있는데..ㅠㅠ 먼가요 이건
-
(•́ ✖ •̀)
알 수 없는 사용자
1 답변
-
type hint 라고 합니다.
파이썬은 동적으로 타입이 결정되는 언어입니다. 즉 수행해보기전엔 무슨 타입인지 알 수 없다는 의미입니다.
이말은 돌려말하면 타입에 의한 오류는 런타임(실행중)이 아니면 알 수 없다는 의미 입니다.
def hab(arg1, arg2): return arg1 /arg2
와 같이 단순히 나누기 함수가 존재할 때
hab(10, 2) 와 같이 호출하면 기대한 대로 동작하겠지만... hab("aaaa", "bbbb") 호출하면 오류가 발생할겁니다.
이때 아래와 같이 명시적으로 타입을 주어 오류를 방지할 수 있고 유지보수가 용이한 코드를 작성할 수 있습니다.
def hab(arg1, arg2: int) -> int: return arg1 /arg2
한가지 더 첨언하면 강제적은 아니기 때문에 hab("aaaa", "bbbb") 의 수행은 막는 역활은 아닙니다. 단순히 힌트입니다.
댓글 입력