Đối tượng lặp

Python cung cấp hai đối tượng lặp có mục đích chung. Đầu tiên, một trình vòng lặp trình tự, hoạt động với một trình tự tùy ý hỗ trợ phương thức __getitem__(). Cái thứ hai hoạt động với một đối tượng có thể gọi được và một giá trị canh gác, gọi đối tượng có thể gọi được cho từng mục trong chuỗi và kết thúc vòng lặp khi giá trị canh gác được trả về.

PyTypeObject PySeqIter_Type
Một phần của ABI ổn định.

Nhập đối tượng cho các đối tượng iterator được trả về bởi PySeqIter_New() và dạng một đối số của hàm tích hợp iter() cho các loại trình tự tích hợp sẵn.

int PySeqIter_Check(PyObject *op)

Trả về true nếu loại opPySeqIter_Type. Chức năng này luôn thành công.

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

Trả về một trình lặp hoạt động với đối tượng chuỗi chung, seq. Quá trình lặp kết thúc khi chuỗi tăng IndexError cho thao tác đăng ký.

PyTypeObject PyCallIter_Type
Một phần của ABI ổn định.

Nhập đối tượng cho các đối tượng iterator được trả về bởi PyCallIter_New() và dạng hai đối số của hàm tích hợp iter().

int PyCallIter_Check(PyObject *op)

Trả về true nếu loại opPyCallIter_Type. Chức năng này luôn thành công.

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

Trả về một trình vòng lặp mới. Tham số đầu tiên, callable, có thể là bất kỳ đối tượng Python nào có thể gọi được mà không cần tham số; mỗi lệnh gọi đến nó sẽ trả về mục tiếp theo trong lần lặp. Khi callable trả về giá trị bằng sentinel, quá trình lặp sẽ kết thúc.

Đối tượng phạm vi

PyTypeObject PyRange_Type
Một phần của ABI ổn định.

Đối tượng loại cho đối tượng range.

int PyRange_Check(PyObject *o)

Trả về true nếu đối tượng o là một phiên bản của đối tượng range. Chức năng này luôn thành công.

Các loại trình vòng lặp dựng sẵn

Đây là các kiểu lặp tích hợp có trong C API của Python, nhưng không cung cấp chức năng bổ sung. Họ ở đây vì sự trọn vẹn.

loại C

loại Python

PyTypeObject PyEnum_Type
Một phần của ABI ổn định.

enumerate

PyTypeObject PyFilter_Type
Một phần của ABI ổn định.

filter

PyTypeObject PyMap_Type
Một phần của ABI ổn định.

map

PyTypeObject PyReversed_Type
Một phần của ABI ổn định.

reversed

PyTypeObject PyZip_Type
Một phần của ABI ổn định.

zip

Các đối tượng Iterator khác

PyTypeObject PyByteArrayIter_Type
Một phần của ABI ổn định.
PyTypeObject PyBytesIter_Type
Một phần của ABI ổn định.
PyTypeObject PyListIter_Type
Một phần của ABI ổn định.
PyTypeObject PyListRevIter_Type
Một phần của ABI ổn định.
PyTypeObject PySetIter_Type
Một phần của ABI ổn định.
PyTypeObject PyTupleIter_Type
Một phần của ABI ổn định.
PyTypeObject PyRangeIter_Type
Một phần của ABI ổn định.
PyTypeObject PyLongRangeIter_Type
Một phần của ABI ổn định.
PyTypeObject PyDictIterKey_Type
Một phần của ABI ổn định.
PyTypeObject PyDictRevIterKey_Type
Một phần của ABI ổn định kể từ phiên bản 3.8.
PyTypeObject PyDictIterValue_Type
Một phần của ABI ổn định.
PyTypeObject PyDictRevIterValue_Type
Một phần của ABI ổn định kể từ phiên bản 3.8.
PyTypeObject PyDictIterItem_Type
Một phần của ABI ổn định.
PyTypeObject PyDictRevIterItem_Type
Một phần của ABI ổn định kể từ phiên bản 3.8.
PyTypeObject PyODictIter_Type

Nhập các đối tượng cho các trình vòng lặp của các đối tượng tích hợp khác nhau.

Không trực tiếp tạo các phiên bản này; thay vào đó thích gọi PyObject_GetIter() hơn.

Lưu ý rằng không có gì đảm bảo rằng một kiểu dựng sẵn nhất định sẽ sử dụng một kiểu lặp nhất định. Ví dụ: việc lặp qua range sẽ sử dụng một trong hai loại trình vòng lặp tùy thuộc vào kích thước của phạm vi. Các loại khác có thể bắt đầu sử dụng sơ đồ tương tự trong tương lai mà không cần cảnh báo.