파이썬의 동적 타이핑(Dynamic Typing)
파이썬에서는 변수에 타입을 명시적으로 지정하지 않습니다. 파이썬은 변수가 어떤 타입인지 스스로 판단하고 내부적으로 이를 추적합니다. 반면 Java나 C++ 같은 정적 타입(Statically-typed) 언어에서는 함수의 반환값과 각 인자의 데이터 타입을 반드시 선언해야 합니다.
흥미로운 점은, 파이썬 함수에서 데이터 타입을 명시적으로 선언하더라도 프로그램은 타입을 선언하지 않은 일반적인 경우와 완전히 동일하게 동작한다는 사실입니다. 즉, 타입 표기는 코드 가독성에는 도움이 될 수 있지만, 실행 결과에는 아무런 영향을 미치지 않습니다.
예제
두 숫자의 합을 반환하는 다음 함수를 살펴보겠습니다.
def addSum(x, y):
return x + y
print(addSum(2.2, 5.6))
print(addSum(float(2.2), float(5.6)))실행 결과
7.8 7.8
위 예제에서 확인할 수 있듯이, float()를 사용해 인자의 타입을 명시적으로 변환해도 출력 결과는 전혀 달라지지 않습니다. 두 호출 모두 동일하게 7.8을 반환합니다.
정리
결론적으로 파이썬에서 변수의 데이터 타입을 명시적으로 선언하는 것은 실행 결과에 어떠한 영향도 주지 않습니다. 파이썬은 런타임에 값의 타입을 자동으로 결정하기 때문입니다.
다만 참고로, 파이썬 3부터는 함수 시그니처에 타입 힌트(type hint)를 추가할 수 있습니다. 타입 힌트 역시 런타임 동작을 강제하지는 않지만, IDE의 자동 완성, mypy 같은 정적 분석 도구 활용, 협업 시 코드 이해도 향상 등의 실질적인 이점을 제공하므로 적극적으로 활용해 볼 만합니다.