방명록
- [Python] 함수라고 믿었던 int()와 str()의 충격적인 정체2026년 02월 18일 11시 22분 27초에 업로드 된 글입니다.작성자: DandyNow728x90반응형
함수라고 믿었던 int()와 str()의 충격적인 정체
1. int, float, str의 실체
1-1. 클래스와 생성자의 관계
- Python에서 흔히 사용되는
int(),float(),str()등은 엄밀히 말하면 독립된 함수가 아니라 클래스이다. - 사용자가 호출하는
int("10")과 같은 형태는 실제로는int클래스의 인스턴스를 생성하는 생성자 호출 과정이다. - 이러한 구조는 Python의 모든 데이터 타입이 객체로 관리된다는 객체지향 철학을 반영한다.1-1-1. 내장 함수로 오해받는 배경
- 일반적인 함수와 동일한 호출 문법을 사용하기 때문에 사용자 입장에서는 '내장 함수'로 인식하기 쉽다.
2. 기술적 근거와 증명
2-1. type() 함수를 통한 타입 분석
- Python의
type()함수를 클래스 이름 자체에 적용하여 그 본질적인 정체를 확인할 수 있다.# int, float, str의 타입을 직접 확인하는 코드 print(type(int)) # 출력: <class 'type'> print(type(float)) # 출력: <class 'type'> print(type(str)) # 출력: <class 'type'> - 만약 이들이 순수한 함수였다면
<class 'builtin_function_or_method'>라는 결과가 도출되었을 것이다. - 결과값인
<class 'type'>은 해당 식별자들이 새로운 객체를 생성할 수 있는 메타클래스임을 입증한다.
3. 함수와 클래스의 구조적 차이점
3-1. 동작 메커니즘의 대조
- 함수는 특정 로직을 수행하고 결과값을 리턴하는 코드 브록인 반면, 클래스는 상태와 행위를 포함하는 객체의 설계도이다.
- 클래스는 상속을 통해 기능을 확장할 수 있다는 점에서 함수와 근본적인 설계상의 차이를 지닌다.
- 호출 시 함수는 로직 실행 후 값을 반환하지만, 클래스는 메모리상에 새로운 인스턴스를 할당하고 초기화 작업을 수행한다.
4. 용어 혼용과 추상화
4-1. Callable 객체의 공통성
- Python 시스템 내에서 함수와 클래스는 모두
()를 사용하여 호출 가능한 'Callable' 객체로 분류된다. - 실무적인 관점에서는 변환 기능에 집중하기 때문에 내부 구현이 클래스인지 함수인지를 구분하는 실익이 적은 경우가 많다.
- 이러한 편의성 때문에 공식 문서에서도 이들을 묶어서 "Built-in Functions"라는 명칭으로 설명하곤 한다.4-1-1. 기타 내장 타입의 사례
- 자료구조를 다루는
list(),dict(),tuple(),set()등 역시 기술적으로는 모두 클래스에 해당한다.
728x90반응형'언어·프레임워크 > Python' 카테고리의 다른 글
파이썬: 언더스코어(_)로 시작하는 함수명의 의미 (0) 2025.09.08 [Python] UV 치트 시트 (0) 2025.08.03 [Python] 윈도우에서 pyenv-win 삭제 방법 (1) 2025.08.03 [Python] 객체 복사: 참조 할당, 얕은 복사, 깊은 복사 완벽 이해하기 (2) 2025.07.28 [Python] 병행성(Concurrency)과 병렬성(Parallelism), 그리고 GIL에 대한 오해 (1) 2025.06.11 다음글이 없습니다.이전글이 없습니다.댓글 - Python에서 흔히 사용되는