대부분의 프로그래밍 언어는 type system이 존재한다. 어떤 변수를 어떻게 다룰 것인지 명시적으로 정의한 것을 말한다. 여기에는 dynamic typing과 static typing으로 나뉘는데 파이썬은 전자이다.
파이썬은 dynamic typing을 계속 고수하기로 선언하였다. 하지만 기호에 따라 static typing을 적용할 수 있도록 type hint를 도입했다. type이 안 맞으면 코드편집기 단계에서 경고한다. 하지만 실행이 안되도록 강제하지는 않는다.
파이썬은 동시에 duck typing 이다. 변수가 어떤 type인지 중요하지 않고 property나 method가 있는지만 본다는 뜻이다. len(x)
를 실행할 때 x.__len__()
이 구현되어있는지 여부가 중요한 것이지 x
자체가 list
인지 dict
인지같은 자료형이 중요하지 않다는 뜻