Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python의 내장 객체(builtins)

<시간/>

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)>}