builtins 모듈은 Python 인터프리터가 시작될 때마다 최상위 실행 환경이나 대화형 세션으로 자동으로 로드됩니다. 모든 Python 객체의 기본 클래스인 Object 클래스는 이 모듈에서 정의됩니다. 숫자, 문자열, 목록 등과 같은 모든 내장 데이터 유형 클래스가 이 모듈에서 정의됩니다. BaseException 클래스와 모든 내장 예외도 여기에 정의되어 있습니다. 또한 모든 내장 함수는 내장 모듈에서도 정의됩니다.
이 모듈은 현재 세션에서 자동으로 가져오기 때문에 일반적으로 명시적으로 가져오지 않습니다. 실행 코드에 사용된 모든 내장 함수는 기본적으로 내장 모듈에서 가져온 것으로 간주됩니다. 예를 들어
>>> len('hello') 5
암시적으로
와 동일합니다.>>> import builtins >>> builtins.len('hello') 5
그러나 내장 함수와 동일한 이름의 사용자 정의 함수가 있는 경우 이 모듈의 명시적 가져오기가 필요합니다. Python 인터프리터는 사용자 정의 함수에 더 높은 우선 순위를 부여합니다. 따라서 코드에 동일한 이름의 사용자 정의 기능과 내장 기능이 모두 포함되어 있으면 후자에 내장 모듈을 접두사로 붙여야 합니다.
def len(string): print ('local len() function') print ('calling len() function in builtins module') import builtins l = builtins.len(string) print ('length:',l) string = "Hello World" len(string)
출력
local len() function calling len() function in builtins module length: 11
대부분의 모듈에는 전역의 일부로 사용할 수 있는 __builtins__라는 이름이 있습니다. __builtins__의 값은 일반적으로 이 모듈 또는 이 모듈의 __dict__속성 값입니다.
>>> import math >>> globals() {'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__': <class '_frozen_importlib.BuiltinImporter'>, '__spec__': None, '__annotations__': {}, '__builtins__': <module 'builtins' (built-in)>, 'math': <module 'math' (built-in)>}