Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

파이썬에서 숫자가 객체로 취급되는 이유는 무엇일까?

파이썬의 모든 것은 객체입니다

파이썬에서는 숫자를 포함한 모든 것이 객체입니다. C나 Java 같은 언어에서 볼 수 있는 '원시 타입(primitive type)'이라는 개념이 파이썬에는 존재하지 않습니다. 대신 정수(int), 실수(float), 문자열(str) 등은 모두 내장 타입(built-in type)으로 제공되며, 이들은 전부 객체입니다.

왜 숫자까지 객체로 만들었을까?

이러한 설계 덕분에 파이썬은 매우 일관된 프로그래밍 모델을 가질 수 있습니다. 숫자도 객체이기 때문에 다음과 같은 작업이 자연스럽게 가능합니다.

  • 모든 값에 type()으로 타입을 확인할 수 있습니다.
  • 숫자에도 메서드와 속성을 호출할 수 있습니다. 예를 들어 (255).bit_length()처럼 사용할 수 있습니다.
  • 함수에 인자로 전달하거나 컬렉션(리스트, 딕셔너리 등)에 담을 때 특별한 규칙 없이 동일하게 처리됩니다.

숫자는 불변(immutable) 객체입니다

중요한 점은 숫자가 불변(immutable) 객체라는 사실입니다. 변수에 담긴 숫자의 값을 직접 변경하는 것이 아니라, 연산을 수행할 때마다 새로운 숫자 객체가 생성됩니다.

x = 10
y = x + 5  # 기존 객체가 바뀌는 것이 아니라 새로운 객체 15가 생성됨

즉, x + 5를 실행하면 기존의 10이 수정되는 것이 아니라, 값이 15인 완전히 새로운 정수 객체가 만들어지고 그 참조가 반환됩니다. 문자열이나 튜플처럼 불변 타입이 값을 공유해도 안전한 이유가 바로 여기에 있습니다.

정리

파이썬은 원시 타입 없이 모든 값을 통일된 객체 모델로 다루기 때문에 언어의 일관성과 확장성이 높아집니다. 숫자 역시 예외가 아니며, 불변 객체로 설계되어 연산 시 항상 새로운 객체가 생성된다는 점을 기억하면 파이썬의 동작 방식을 더 깊이 이해할 수 있습니다.