Vâng, nó cũng nói:
Các vòng lồng nhau chu kỳ giống như một odometer với các yếu tố ngoài cùng bên phải tiến trên mỗi lần lặp. Mẫu này tạo thứ tự từ vựng để nếu các vòng lặp của đầu vào được sắp xếp, sản phẩm bộ dữ liệu được phát ra theo thứ tự sắp xếp.
này là khá nhiều cách thức hoạt động trong việc thực hiện (Modules/itertoolsmodule.c
)
Đây là đối tượng trạng thái:
typedef struct {
PyObject_HEAD
PyObject *pools; /* tuple of pool tuples */
Py_ssize_t *indices; /* one index per pool */
PyObject *result; /* most recently returned result tuple */
int stopped; /* set to 1 when the product iterator is exhausted */
} productobject;
Và mục tiếp theo được trả về bởi hàm product_next
, trong đó sử dụng này trạng thái và thuật toán được mô tả trong báo giá để tạo ra trạng thái tiếp theo. Xem this answer để hiểu các yêu cầu về bộ nhớ.
Đối với giáo dục phổ thông, bạn có thể đọc về cách tạo máy phát điện có trạng thái từ tiện ích mở rộng C here.
Nguồn
2012-05-23 12:56:11
Bản sao có thể có của [Tại sao tôi nhận được MemoryError với itertools.product?] (Http://stackoverflow.com/q/8695422/222914) –