types --- tên cho các kiểu dữ liệu tích hợp

Mô-đun này định nghĩa tên cho một số kiểu đối tượng được sử dụng bởi trình thông dịch Python chuẩn nhưng không được hiển thị dưới dạng hàm/lớp tích hợp sẵn (như kiểu của hàm hoặc generator), cùng với một số hàm trợ giúp nhỏ cho việc tạo lớp động.

Đây là bản chuyển đổi MicroPython của một tập hợp con từ mô-đun types của CPython. Một số bí danh kiểu không có biểu diễn hữu ích trong MicroPython (CodeType, MappingProxyType, SimpleNamespace, TracebackType, FrameType, GetSetDescriptorType, MemberDescriptorType) được hiển thị dưới dạng placeholder None để mã chỉ tham chiếu đến chúng vẫn có thể import được, nhưng chúng sẽ không khớp với bất kỳ đối tượng thực nào qua isinstance().

Tính khả dụng: Mô-đun này là một phần của micropython-lib. Nó được bao gồm theo mặc định chỉ trên OpenMV N6 và OpenMV AE3. Trên các OpenMV Cam khác, nó có thể được cài đặt bằng mip (hoặc đóng gói vào firmware tùy chỉnh); xem Quản lý gói.

Bí danh kiểu

types.FunctionType: type

Kiểu của các hàm do người dùng định nghĩa và các đối tượng được tạo bởi câu lệnh def.

types.LambdaType: type

Kiểu của biểu thức lambda. Giống hệt với FunctionType.

types.GeneratorType: type

Kiểu của các đối tượng generator-iterator được tạo ra bởi các hàm generator.

types.MethodType: type

Kiểu của các phương thức ràng buộc của các thực thể lớp do người dùng định nghĩa.

types.BuiltinFunctionType: type

Kiểu của các hàm tích hợp như len()sys.exit().

types.BuiltinMethodType: type

Kiểu của các phương thức ràng buộc của các kiểu tích hợp (ví dụ [].append). Giống hệt với BuiltinFunctionType.

types.ModuleType: type

Kiểu của các mô-đun đã được import.

types.CodeType: None

Placeholder cho kiểu đối tượng code của CPython. Luôn là None trong cài đặt này.

types.MappingProxyType: None

Placeholder cho kiểu proxy ánh xạ chỉ đọc được trả về bởi type.__dict__ trong CPython. Luôn là None trong cài đặt này.

types.SimpleNamespace: None

Placeholder cho lớp types.SimpleNamespace của CPython. Luôn là None trong cài đặt này.

types.TracebackType: None

Placeholder cho kiểu của các đối tượng traceback. Luôn là None trong cài đặt này.

types.FrameType: None

Placeholder cho kiểu của các đối tượng frame. Luôn là None trong cài đặt này.

types.GetSetDescriptorType: None

Placeholder cho kiểu của các attribute descriptor được định nghĩa bởi các kiểu mở rộng. Luôn là None trong cài đặt này.

types.MemberDescriptorType: None

Placeholder cho kiểu của các slot descriptor được định nghĩa bởi các kiểu mở rộng. Luôn là None trong cài đặt này.

Hàm

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

Tạo đối tượng lớp một cách động theo cách phản chiếu câu lệnh class tuân thủ PEP 3115.

  • name là tên của lớp mới.

  • bases là một tuple các lớp cơ sở.

  • kwds là một dict các đối số từ khóa để truyền cho metaclass. Khóa "metaclass", nếu có, sẽ chọn metaclass trực tiếp.

  • exec_body là một callable tùy chọn sẽ được gọi với không gian tên lớp vừa được chuẩn bị; nó nên điền vào đó các thuộc tính của lớp mới.

Trả về lớp vừa được tạo.

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

Tính toán metaclass phù hợp và chuẩn bị không gian tên cho lớp mới.

  • name là tên của lớp sắp được tạo.

  • bases là một tuple các lớp cơ sở.

  • kwds là một dict các đối số từ khóa. Khóa "metaclass", nếu có, sẽ bị loại bỏ khỏi kwds được trả về và được sử dụng làm metaclass. Nếu không thì sẽ sử dụng metaclass của bases[0], dự phòng về type.

Trả về một 3-tuple (metaclass, namespace, kwds) trong đó namespace là kết quả của việc gọi metaclass.__prepare__ nếu được định nghĩa, hoặc một dict rỗng nếu không, và kwds là bản sao của đầu vào với bất kỳ mục "metaclass" nào đã bị loại bỏ.