파이썬 from typing import List 에 관한 질문

조회수 69회

1번 경우

from typing import List

def average(L : list[float]) -> float:
    print("HELLO")

정상적인 작동이 됩니다. 2번경우

from typing import List

def average(L : Gist[float]) -> float:
    print("HELLO")

일경우

Traceback (most recent call last):
  File "<pyshell#86>", line 1, in <module>
    def average(L : Gist[float]) -> float:
NameError: name 'Gist' is not defined 

1.메세지 출력하는데 여기서 궁금한점은 L: 뒤에 타입표기는 타입들 형식에 맞게 설정하지 않으면 오류메세지가 뜨고 만약에 타입형식을 맞추고 타입에 맞지 않은 값을 인자에 넣는 경우는 오류메세지를 보내지 않는 건가여??

두번쨰 질문

from typing import List
def average(L : list[float]) -> float:
    print("HELLO")
 from typing import List

 def average(L : List[float]) -> float:
    print("HELLO")

1.이 두 코드에서 import List 함으로 얻는 것은 무엇인가요? 2.그리고 L:listL:List 를 구분해서 써야 되나요??

1 답변

  • 파이썬은 동적언어로 만들어졌기 때문에 초기에는 타입 지정이 없었어요.

    그런데, 버전이 올라가면서 타입 힌팅 기능이 추가되었고, 추가되면서 발전되었기 때문에 불완전한 부분들이 있었고요. typing 의 List, Dict 등은 그런 식으로 만들어지고 발전된 것입니다. 타입을 import 해서 쓴다니 좀 어중간하죠.

    list, dict 등의 타입은 typing 보다 이후에 정식 파이썬에 포함된 것이고요. 기능상으로는 변수의 타입을 알려줘서, 정적분석에 활용되는 정도인 것 같습니다. 다른 강타입언어들보다는 그 제약이 작아요.

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

Hashcode는 개발자들을 위한 무료 QnA 사이트입니다. 계정을 생성하셔야만 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)

ᕕ( ᐛ )ᕗ
로그인이 필요합니다

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 계정을 생성하셔야만 글을 작성하실 수 있습니다.