Giao thức ánh xạ

Xem thêm PyObject_GetItem(), PyObject_SetItem()PyObject_DelItem().

int PyMapping_Check(PyObject *o)
Một phần của ABI ổn định.

Trả về 1 nếu đối tượng cung cấp giao thức ánh xạ hoặc hỗ trợ cắt và 0 nếu ngược lại. Lưu ý rằng nó trả về 1 cho các lớp Python bằng phương thức __getitem__(), vì nói chung không thể xác định loại khóa nào mà lớp đó hỗ trợ. Chức năng này luôn thành công.

Py_ssize_t PyMapping_Size(PyObject *o)
Py_ssize_t PyMapping_Length(PyObject *o)
Một phần của ABI ổn định.

Trả về số lượng khóa trong đối tượng o nếu thành công và -1 nếu thất bại. Điều này tương đương với biểu thức Python len(o).

PyObject *PyMapping_GetItemString(PyObject *o, const char *key)
Giá trị trả về: Tham chiếu mới. Một phần của ABI ổn định.

Điều này giống với PyObject_GetItem(), nhưng key được chỉ định là chuỗi byte được mã hóa const char* UTF-8, thay vì PyObject*.

int PyMapping_GetOptionalItem(PyObject *obj, PyObject *key, PyObject **result)
Một phần của ABI ổn định kể từ phiên bản 3.13.

Biến thể của PyObject_GetItem() không tăng KeyError nếu không tìm thấy khóa.

Nếu tìm thấy khóa, hãy trả về 1 và đặt *result thành strong reference mới với giá trị tương ứng. Nếu không tìm thấy khóa, hãy trả về 0 và đặt *result thành NULL; KeyError bị tắt tiếng. Nếu xuất hiện lỗi không phải KeyError, hãy trả về -1 và đặt *result thành NULL.

Added in version 3.13.

int PyMapping_GetOptionalItemString(PyObject *obj, const char *key, PyObject **result)
Một phần của ABI ổn định kể từ phiên bản 3.13.

Điều này giống với PyMapping_GetOptionalItem(), nhưng key được chỉ định là chuỗi byte được mã hóa const char* UTF-8, thay vì PyObject*.

Added in version 3.13.

int PyMapping_SetItemString(PyObject *o, const char *key, PyObject *v)
Một phần của ABI ổn định.

Điều này giống với PyObject_SetItem(), nhưng key được chỉ định là chuỗi byte được mã hóa const char* UTF-8, thay vì PyObject*.

int PyMapping_DelItem(PyObject *o, PyObject *key)

Đây là bí danh của PyObject_DelItem().

int PyMapping_DelItemString(PyObject *o, const char *key)

Điều này giống với PyObject_DelItem(), nhưng key được chỉ định là chuỗi byte được mã hóa const char* UTF-8, thay vì PyObject*.

int PyMapping_HasKeyWithError(PyObject *o, PyObject *key)
Một phần của ABI ổn định kể từ phiên bản 3.13.

Trả về 1 nếu đối tượng ánh xạ có khóa key0 nếu không. Điều này tương đương với biểu thức Python key in o. Nếu thất bại, hãy trả lại -1.

Added in version 3.13.

int PyMapping_HasKeyStringWithError(PyObject *o, const char *key)
Một phần của ABI ổn định kể từ phiên bản 3.13.

Điều này giống với PyMapping_HasKeyWithError(), nhưng key được chỉ định là chuỗi byte được mã hóa const char* UTF-8, thay vì PyObject*.

Added in version 3.13.

int PyMapping_HasKey(PyObject *o, PyObject *key)
Một phần của ABI ổn định.

Trả về 1 nếu đối tượng ánh xạ có khóa key0 nếu không. Điều này tương đương với biểu thức Python key in o. Chức năng này luôn thành công.

Ghi chú

Các ngoại lệ xảy ra khi lệnh này gọi phương thức __getitem__() đều bị bỏ qua một cách âm thầm. Để xử lý lỗi thích hợp, hãy sử dụng PyMapping_HasKeyWithError(), PyMapping_GetOptionalItem() hoặc PyObject_GetItem().

int PyMapping_HasKeyString(PyObject *o, const char *key)
Một phần của ABI ổn định.

Điều này giống với PyMapping_HasKey(), nhưng key được chỉ định là chuỗi byte được mã hóa const char* UTF-8, thay vì PyObject*.

Ghi chú

Các ngoại lệ xảy ra khi điều này gọi phương thức __getitem__() hoặc trong khi tạo đối tượng str tạm thời sẽ bị bỏ qua âm thầm. Để xử lý lỗi thích hợp, hãy sử dụng PyMapping_HasKeyStringWithError(), PyMapping_GetOptionalItemString() hoặc PyMapping_GetItemString().

PyObject *PyMapping_Keys(PyObject *o)
Giá trị trả về: Tham chiếu mới. Một phần của ABI ổn định.

Nếu thành công, trả về danh sách các khóa trong đối tượng o. Nếu thất bại, trả về NULL.

Thay đổi trong phiên bản 3.7: Trước đây, hàm trả về một danh sách hoặc một bộ dữ liệu.

PyObject *PyMapping_Values(PyObject *o)
Giá trị trả về: Tham chiếu mới. Một phần của ABI ổn định.

Nếu thành công, trả về danh sách các giá trị trong đối tượng o. Nếu thất bại, trả về NULL.

Thay đổi trong phiên bản 3.7: Trước đây, hàm trả về một danh sách hoặc một bộ dữ liệu.

PyObject *PyMapping_Items(PyObject *o)
Giá trị trả về: Tham chiếu mới. Một phần của ABI ổn định.

Nếu thành công, trả về danh sách các mục trong đối tượng o, trong đó mỗi mục là một bộ chứa một cặp khóa-giá trị. Nếu thất bại, trả về NULL.

Thay đổi trong phiên bản 3.7: Trước đây, hàm trả về một danh sách hoặc một bộ dữ liệu.