# 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)

  Return true if the type of op is `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)

  Return true if the type of op is `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.