Đối tượng cắt lát¶
-
PyTypeObject PySlice_Type¶
- Một phần của ABI ổn định.
Đối tượng kiểu cho các đối tượng lát cắt. Điều này giống như
slicetrong lớp Python.
-
int PySlice_Check(PyObject *ob)¶
Trả về true nếu ob là một đối tượng lát cắt; ob không được là
NULL. Chức năng này luôn thành công.
-
PyObject *PySlice_New(PyObject *start, PyObject *stop, PyObject *step)¶
- Giá trị trả về: Tham chiếu mới. Một phần của ABI ổn định.
Trả về một đối tượng lát cắt mới với các giá trị đã cho. Các tham số start, stop và step được sử dụng làm giá trị của các thuộc tính đối tượng lát cắt có cùng tên. Bất kỳ giá trị nào cũng có thể là
NULL, trong trường hợp đó,Nonesẽ được sử dụng cho thuộc tính tương ứng.Trả về
NULLvới một ngoại lệ được đặt nếu đối tượng mới không thể được phân bổ.
-
int PySlice_GetIndices(PyObject *slice, Py_ssize_t length, Py_ssize_t *start, Py_ssize_t *stop, Py_ssize_t *step)¶
- Một phần của ABI ổn định.
Truy xuất các chỉ số bắt đầu, dừng và bước từ đối tượng lát cắt slice, giả sử một chuỗi có độ dài length. Xử lý các chỉ số lớn hơn length là lỗi.
Trả về
0nếu thành công và-1có lỗi mà không đặt ngoại lệ (trừ khi một trong các chỉ số không phải làNonevà không thể chuyển đổi thành số nguyên, trong trường hợp đó-1được trả về cùng với một bộ ngoại lệ).Có lẽ bạn không muốn sử dụng chức năng này.
Thay đổi trong phiên bản 3.2: Loại tham số cho tham số slice trước đây là
PySliceObject*.
-
int PySlice_GetIndicesEx(PyObject *slice, Py_ssize_t length, Py_ssize_t *start, Py_ssize_t *stop, Py_ssize_t *step, Py_ssize_t *slicelength)¶
- Một phần của ABI ổn định.
Có thể thay thế cho
PySlice_GetIndices(). Truy xuất các chỉ số bắt đầu, dừng và bước từ đối tượng lát cắt slice giả sử một chuỗi có độ dài length và lưu trữ độ dài của lát cắt trong slicelength. Các chỉ số ngoài giới hạn được cắt bớt theo cách phù hợp với việc xử lý các lát thông thường.Trả về
0nếu thành công và-1nếu có lỗi với một bộ ngoại lệ.Ghi chú
Chức năng này được coi là không an toàn đối với các chuỗi có thể thay đổi kích thước. Lời gọi của nó nên được thay thế bằng sự kết hợp của
PySlice_Unpack()vàPySlice_AdjustIndices()trong đóif (PySlice_GetIndicesEx(lát, chiều dài, &bắt đầu, &dừng, &bước, &slicelength) < 0) { // trả về lỗi }
được thay thế bởi
if (PySlice_Unpack(lát, &bắt đầu, &dừng, &bước) < 0) { // trả về lỗi } slicelength = PySlice_AdjustIndices(length, &start, &stop, step);
Thay đổi trong phiên bản 3.2: Loại tham số cho tham số slice trước đây là
PySliceObject*.Thay đổi trong phiên bản 3.6.1: Nếu
Py_LIMITED_APIkhông được đặt hoặc đặt thành giá trị giữa0x03050400và0x03060000(không bao gồm) hoặc0x03060100trở lên thìPySlice_GetIndicesEx()được triển khai dưới dạng macro sử dụngPySlice_Unpack()vàPySlice_AdjustIndices(). Các đối số start, stop và step được đánh giá nhiều lần.Sắp loại bỏ từ phiên bản 3.6.1: Nếu
Py_LIMITED_APIđược đặt thành giá trị nhỏ hơn0x03050400hoặc giữa0x03060000và0x03060100(không bao gồm) thìPySlice_GetIndicesEx()là một hàm không được dùng nữa.
-
int PySlice_Unpack(PyObject *slice, Py_ssize_t *start, Py_ssize_t *stop, Py_ssize_t *step)¶
- Một phần của ABI ổn định kể từ phiên bản 3.7.
Trích xuất các thành viên dữ liệu bắt đầu, dừng và bước từ một đối tượng lát cắt dưới dạng số nguyên C. Giảm âm thầm các giá trị lớn hơn
PY_SSIZE_T_MAXxuốngPY_SSIZE_T_MAX, âm thầm tăng giá trị bắt đầu và dừng nhỏ hơnPY_SSIZE_T_MINlênPY_SSIZE_T_MINvà âm thầm tăng các giá trị bước nhỏ hơn-PY_SSIZE_T_MAXlên-PY_SSIZE_T_MAX.Trả về
-1với ngoại lệ được đặt là lỗi,0thành công.Added in version 3.6.1.
-
Py_ssize_t PySlice_AdjustIndices(Py_ssize_t length, Py_ssize_t *start, Py_ssize_t *stop, Py_ssize_t step)¶
- Một phần của ABI ổn định kể từ phiên bản 3.7.
Điều chỉnh các chỉ số lát bắt đầu/kết thúc giả sử một chuỗi có độ dài được chỉ định. Các chỉ số ngoài giới hạn được cắt bớt theo cách phù hợp với việc xử lý các lát thông thường.
Trả về chiều dài của lát cắt. Luôn thành công. Không gọi mã Python.
Added in version 3.6.1.
Đối tượng Ellipsis¶
-
PyTypeObject PyEllipsis_Type¶
- Một phần của ABI ổn định.
Loại đối tượng Python
Ellipsis. Tương tự nhưtypes.EllipsisTypetrong lớp Python.
-
PyObject *Py_Ellipsis¶
Đối tượng Python
Ellipsis. Đối tượng này không có phương pháp. Giống nhưPy_None, nó là một đối tượng đơn lẻ immortal.Thay đổi trong phiên bản 3.12:
Py_Ellipsislà bất tử.