Python

이터레이터 객체

파이썬은 두 개의 범용 이터레이터 객체를 제공합니다. 첫째, 시퀀스 이터레이터는 __getitem__() 메서드를 지원하는 임의의 시퀀스와 작동합니다. 둘째는 콜러블 객체와 종료 신호(sentinel) 값을 사용하고, 시퀀스의 각 항목에 대해 콜러블을 호출하고, 종료 신호 값이 반환될 때 이터레이션을 종료합니다.

PyTypeObject PySeqIter_Type
…의 일부 안정 ABI.

PySeqIter_New()와 내장 시퀀스 형에 대한 iter() 내장 함수의 단일 인자 형식에 의해 반환된 이터레이터 객체에 대한 형 객체.

int PySeqIter_Check(PyObject *op)

op의 형이 PySeqIter_Type이면 참을 돌려줍니다. 이 함수는 항상 성공합니다.

PyObject *PySeqIter_New(PyObject *seq)
반환값: 새 참조. …의 일부 안정 ABI.

일반 시퀀스 객체 seq와 함께 작동하는 이터레이터를 반환합니다. 시퀀스가 서브스크립션 연산에서 IndexError를 일으키면 이터레이션이 끝납니다.

PyTypeObject PyCallIter_Type
…의 일부 안정 ABI.

PyCallIter_New()iter() 내장 함수의 두 인자 형식에 의해 반환된 이터레이터 객체에 대한 형 객체.

int PyCallIter_Check(PyObject *op)

op의 형이 PyCallIter_Type이면 참을 돌려줍니다. 이 함수는 항상 성공합니다.

PyObject *PyCallIter_New(PyObject *callable, PyObject *sentinel)
반환값: 새 참조. …의 일부 안정 ABI.

새로운 이터레이터를 돌려줍니다. 첫 번째 매개 변수 callable은 매개 변수 없이 호출할 수 있는 모든 파이썬 콜러블 객체일 수 있습니다; 각 호출은 이터레이션의 다음 항목을 반환해야 합니다. callablesentinel와 같은 값을 반환하면 이터레이션이 종료됩니다.

범위 객체(Range Objects)

PyTypeObject PyRange_Type
…의 일부 안정 ABI.

range 객체의 타입 객체입니다.

int PyRange_Check(PyObject *o)

객체 orange 객체의 인스턴스이면 True를 반환합니다. 이 함수는 항상 성공합니다.

내장 이터레이터 형식

이것들은 파이썬의 C API에 포함된 내장 이터레이션 형식으로, 추가적인 기능을 제공하지는 않지만 완전성을 위해 포함되었습니다.

C 타입

파이썬 타입

PyTypeObject PyEnum_Type
…의 일부 안정 ABI.

enumerate

PyTypeObject PyFilter_Type
…의 일부 안정 ABI.

filter

PyTypeObject PyMap_Type
…의 일부 안정 ABI.

map

PyTypeObject PyReversed_Type
…의 일부 안정 ABI.

reversed

PyTypeObject PyZip_Type
…의 일부 안정 ABI.

zip

기타 이터레이터 객체

PyTypeObject PyByteArrayIter_Type
…의 일부 안정 ABI.
PyTypeObject PyBytesIter_Type
…의 일부 안정 ABI.
PyTypeObject PyListIter_Type
…의 일부 안정 ABI.
PyTypeObject PyListRevIter_Type
…의 일부 안정 ABI.
PyTypeObject PySetIter_Type
…의 일부 안정 ABI.
PyTypeObject PyTupleIter_Type
…의 일부 안정 ABI.
PyTypeObject PyRangeIter_Type
…의 일부 안정 ABI.
PyTypeObject PyLongRangeIter_Type
…의 일부 안정 ABI.
PyTypeObject PyDictIterKey_Type
…의 일부 안정 ABI.
PyTypeObject PyDictRevIterKey_Type
…의 일부 안정 ABI 버전 3.8 이후로.
PyTypeObject PyDictIterValue_Type
…의 일부 안정 ABI.
PyTypeObject PyDictRevIterValue_Type
…의 일부 안정 ABI 버전 3.8 이후로.
PyTypeObject PyDictIterItem_Type
…의 일부 안정 ABI.
PyTypeObject PyDictRevIterItem_Type
…의 일부 안정 ABI 버전 3.8 이후로.
PyTypeObject PyODictIter_Type

다양한 내장 객체의 이터레이터를 위한 타입 객체입니다.

이들의 인스턴스를 직접 생성하지 마십시오. 대신 PyObject_GetIter() 을 호출하는 것을 권장합니다.

특정 내장 타입이 특정 이터레이터 타입을 사용한다는 보장은 없습니다. 예를 들어, range 를 순회할 때는 범위의 크기에 따라 두 가지 이터레이터 타입 중 하나를 사용하게 됩니다. 다른 타입들도 향후 경고 없이 유사한 방식을 도입할 수 있습니다.