Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

p.222, 223 타입 힌트 질문 드립니다. #31

Closed
gyuhwanhwang opened this issue Sep 11, 2020 · 1 comment
Closed

p.222, 223 타입 힌트 질문 드립니다. #31

gyuhwanhwang opened this issue Sep 11, 2020 · 1 comment

Comments

@gyuhwanhwang
Copy link

안녕하세요 선생님의 책으로 열심히 공부하고 있는 학생입니다.
공부를 하다보니 p.222, 223 함수의 타입 힌트에 의문이 생겨 질문 드립니다.

    # 연결 리스트를 파이썬 리스트로 변환
    def toList(self, node: ListNode) -> ListNode:
        list: List = []
        while node:
            list.append(node.val)
            node = node.next
        return list


    # 파이썬 리스트를 연결 리스트로 변환
    def toReversedLinkedList(self, result: ListNode) -> ListNode:
        prev: ListNode = None
        for r in result:
            node = ListNode(r)
            node.next = prev
            prev = node

        return node

위 toList 함수는 타입 힌트에서 반환형이 ListNode로 명시되어 있는데 내부 list의 선언과 설명을 보니 List인 것 같고,
아래 toReversedLinkedList 함수의 인자인 result는 str로 타입 힌트를 하는 게 맞지 않나라는 의문이 들었습니다.
그래서 파이썬의 타입 힌트에 대해 찾아보니 타입힌트는 IDE나 정적 검사기에서 오류를 탐지하는데 도울 뿐 런타임에는 영향을 미치지 못한다는 것을 보았습니다. 실제로 리트코드에서 제가 생각한 것과 원래 코드 모두 정상적으로 정답으로 인정되어 제가 생각한 것이 틀린 것인지 그렇다면 왜 그런 것인지 궁금하여 질문 남깁니다. 감사합니다.

@likejazz
Copy link
Collaborator

안녕하세요.
알려주셔서 감사합니다. 두 함수의 각각 리턴 타입, 파라미터는 제가 잘못 처리한게 맞습니다.
수정하도록 하겠습니다.

파이썬은 대표적인 동적 타입 언어로 타입을 잘못 지정하여도 오류가 발생하지 않습니다. 타입 힌트가 추가된건 파이썬이 나오고 한참 지난 후 이며 사실상 가이드라인 일뿐 이처럼 틀려도 문제 없이 진행되기 때문에 유의해야 합니다. 타입을 정확하게 판단하고 싶다면 Mypy 같은 별도 외부 정적 타입 체커를 활용해야 합니다.

감사합니다.

likejazz added a commit that referenced this issue Sep 14, 2020
@likejazz likejazz closed this as completed Oct 7, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants