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ớiFunctionType.
- 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()và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ớiBuiltinFunctionType.
- types.CodeType: None¶
Placeholder cho kiểu đối tượng
codecủa CPython. Luôn làNonetrong 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àNonetrong cài đặt này.
- types.SimpleNamespace: None¶
Placeholder cho lớp
types.SimpleNamespacecủa CPython. Luôn làNonetrong cài đặt này.
- types.TracebackType: None¶
Placeholder cho kiểu của các đối tượng traceback. Luôn là
Nonetrong cài đặt này.
- types.FrameType: None¶
Placeholder cho kiểu của các đối tượng frame. Luôn là
Nonetrong 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
classtuâ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ủabases[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ọimetaclass.__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ỏ.