함수 정의할 때 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") 의 수행은 막는 역활은 아닙니다. 단순히 힌트입니다.

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)