Objek Iterator
**************

Python menyediakan dua objek iterator untuk tujuan umum. Yang pertama,
iterator urutan, bekerja dengan objek yang mendukung metode
"__getitem__()". Yang kedua bekerja dengan objek yang bisa dipanggil
dan nilai penjaga (sentinel), memanggil callable untuk setiap item
dalam urutan, dan mengakhiri iterasi ketika nilai penjaga
dikembalikan.

PyTypeObject PySeqIter_Type

   Tipe objek untuk objek iterator yang dikembalikan oleh
   "PySeqIter_New()" dan bentuk satu argumen dari fungsi bawaan
   "iter()" untuk tipe urutan bawaan.

int PySeqIter_Check(op)

   Mengembalikan nilai true jika tipe *op* adalah "PySeqIter_Type".

PyObject* PySeqIter_New(PyObject *seq)
    *Return value: New reference.*

   Mengembalikan iterator yang bekerja dengan objek urutan umum,
   *seq*. Iterasi berakhir ketika urutan memunculkan "IndexError"
   untuk operasi berlangganan (subscripting).

PyTypeObject PyCallIter_Type

   Tipe objek untuk objek iterator yang dikembalikan oleh
   "PyCallIter_New()" dan bentuk dua argumen dari fungsi bawaan
   "iter()" .

int PyCallIter_Check(op)

   Mengembalikan nilai true jika tipe *op* adalah "PyCallIter_Type".

PyObject* PyCallIter_New(PyObject *callable, PyObject *sentinel)
    *Return value: New reference.*

   Mengembalikan iterator baru. Parameter pertama, *callable*, dapat
   berupa objek Python callable apa saja yang bisa dipanggil tanpa
   parameter; setiap pemanggilan harus mengembalikan butir (item)
   berikutnya pada iterator. Ketika *callable* mengembalikan nilai
   sama dengan *sentinel*, perulangan akan dihentikan.
