types — 내장 타입에 대한 이름

이 모듈은 표준 Python 인터프리터가 사용하지만 빌트인으로 노출되지 않는 일부 객체 타입(함수나 제너레이터의 타입 등)에 대한 이름과 함께, 동적 클래스 생성을 위한 소수의 헬퍼를 정의합니다.

이것은 CPython의 types 모듈 일부를 MicroPython으로 포팅한 것입니다. MicroPython에서 유용한 표현이 없는 여러 타입 별칭(CodeType, MappingProxyType, SimpleNamespace, TracebackType, FrameType, GetSetDescriptorType, MemberDescriptorType)은 None 자리표시자로 노출되어, 이들을 참조하기만 하는 코드가 계속 임포트되도록 합니다. 다만 이들은 isinstance()를 통해 실제 객체와 일치하지 않습니다.

사용 가능 여부: 이 모듈은 micropython-lib의 일부입니다. OpenMV N6와 OpenMV AE3에서만 기본으로 포함됩니다. 다른 OpenMV Cam에서는 mip으로 설치하거나(또는 커스텀 펌웨어에 고정), 패키지 관리를 참조하세요.

타입 별칭

types.FunctionType: type

사용자 정의 함수 및 def 문으로 생성된 객체의 타입입니다.

types.LambdaType: type

lambda 표현식의 타입입니다. FunctionType과 동일합니다.

types.GeneratorType: type

제너레이터 함수가 생성하는 제너레이터-이터레이터 객체의 타입입니다.

types.MethodType: type

사용자 정의 클래스 인스턴스의 바운드 메서드 타입입니다.

types.BuiltinFunctionType: type

len()sys.exit() 같은 내장 함수의 타입입니다.

types.BuiltinMethodType: type

내장 타입의 바운드 메서드 타입입니다(예: [].append). BuiltinFunctionType과 동일합니다.

types.ModuleType: type

임포트된 모듈의 타입입니다.

types.CodeType: None

CPython code 객체 타입에 대한 자리표시자입니다. 이 구현에서는 항상 None입니다.

types.MappingProxyType: None

CPython에서 type.__dict__가 반환하는 읽기 전용 매핑 프록시 타입에 대한 자리표시자입니다. 이 구현에서는 항상 None입니다.

types.SimpleNamespace: None

CPython types.SimpleNamespace 클래스에 대한 자리표시자입니다. 이 구현에서는 항상 None입니다.

types.TracebackType: None

트레이스백 객체 타입에 대한 자리표시자입니다. 이 구현에서는 항상 None입니다.

types.FrameType: None

프레임 객체 타입에 대한 자리표시자입니다. 이 구현에서는 항상 None입니다.

types.GetSetDescriptorType: None

확장 타입이 정의하는 속성 디스크립터 타입에 대한 자리표시자입니다. 이 구현에서는 항상 None입니다.

types.MemberDescriptorType: None

확장 타입이 정의하는 슬롯 디스크립터 타입에 대한 자리표시자입니다. 이 구현에서는 항상 None입니다.

함수

types.new_class(name: str, bases: tuple = (), kwds: dict | None = None, exec_body: Callable[[dict], None] | None = None) type

PEP 3115를 준수하는 class 문을 그대로 반영하는 방식으로 클래스 객체를 동적으로 생성합니다.

  • name은 새 클래스의 이름입니다.

  • bases는 기반 클래스들의 튜플입니다.

  • kwds는 메타클래스에 전달할 키워드 인자의 딕셔너리입니다. "metaclass" 키가 있으면 메타클래스를 직접 선택합니다.

  • exec_body는 새로 준비된 클래스 네임스페이스와 함께 호출되는 선택적 콜러블입니다. 이 콜러블은 네임스페이스를 새 클래스의 속성들로 채워야 합니다.

새로 생성된 클래스를 반환합니다.

types.prepare_class(name: str, bases: tuple = (), kwds: dict | None = None) tuple[type, dict, dict]

적절한 메타클래스를 계산하고 새 클래스를 위한 네임스페이스를 준비합니다.

  • name은 생성하려는 클래스의 이름입니다.

  • bases는 기반 클래스들의 튜플입니다.

  • kwds는 키워드 인자의 딕셔너리입니다. "metaclass" 키가 있으면 반환되는 kwds에서 제거되어 메타클래스로 사용됩니다. 그렇지 않으면 bases[0]의 메타클래스가 사용되며, 이마저 없으면 type으로 대체됩니다.

3-튜플 (metaclass, namespace, kwds)를 반환합니다. 여기서 namespacemetaclass.__prepare__가 정의되어 있으면 이를 호출한 결과이고, 그렇지 않으면 빈 딕셔너리입니다. 그리고 kwds"metaclass" 항목이 제거된 입력의 복사본입니다.