시퀀스 프로토콜¶
-
int
PySequence_Check(PyObject *o)¶ - Part of the Stable ABI.
Return
1if the object provides the sequence protocol, and0otherwise. Note that it returns1for Python classes with a__getitem__()method, unless they aredictsubclasses, since in general it is impossible to determine what type of keys the class supports. This function always succeeds.
-
Py_ssize_t
PySequence_Size(PyObject *o)¶ -
Py_ssize_t
PySequence_Length(PyObject *o)¶ - Part of the Stable ABI.
성공 시 시퀀스 o의 객체 수를 반환하고, 실패하면
-1을 반환합니다. 이것은 파이썬 표현식len(o)와 동등합니다.
-
PyObject *
PySequence_Concat(PyObject *o1, PyObject *o2)¶ - 반환값: 새 참조. Part of the Stable ABI.
성공 시 o1와 o2의 이어붙이기를 반환하고, 실패하면
NULL을 반환합니다. 이것은 파이썬 표현식o1 + o2와 동등합니다.
-
PyObject *
PySequence_Repeat(PyObject *o, Py_ssize_t count)¶ - 반환값: 새 참조. Part of the Stable ABI.
시퀸스 객체 o를 count 번 반복한 결과를 반환하거나, 실패 시
NULL을 반환합니다. 이것은 파이썬 표현식o * count와 동등합니다.
-
PyObject *
PySequence_InPlaceConcat(PyObject *o1, PyObject *o2)¶ - 반환값: 새 참조. Part of the Stable ABI.
성공 시 o1와 o2의 이어붙이기를 반환하고, 실패하면
NULL을 반환합니다. 이 연산은 o1가 지원하면 제자리에서(in-place) 수행됩니다. 이것은 파이썬 표현식o1 += o2와 동등합니다.
-
PyObject *
PySequence_InPlaceRepeat(PyObject *o, Py_ssize_t count)¶ - 반환값: 새 참조. Part of the Stable ABI.
시퀸스 객체 o를 count 번 반복한 결과를 반환하거나, 실패 시
NULL을 반환합니다. 이 연산은 o가 지원하면 제자리에서(in-place) 수행됩니다. 이것은 파이썬 표현식o *= count와 동등합니다.
-
PyObject *
PySequence_GetItem(PyObject *o, Py_ssize_t i)¶ - 반환값: 새 참조. Part of the Stable ABI.
o의 i 번째 요소를 반환하거나, 실패하면
NULL을 반환합니다. 이것은 파이썬 표현식o[i]와 동등합니다.
-
PyObject *
PySequence_GetSlice(PyObject *o, Py_ssize_t i1, Py_ssize_t i2)¶ - 반환값: 새 참조. Part of the Stable ABI.
시퀀스 객체 o의 i1와 i2 사이의 슬라이스를 반환하거나, 실패하면
NULL을 반환합니다. 이것은 파이썬 표현식o[i1:i2]와 동등합니다.
-
int
PySequence_SetItem(PyObject *o, Py_ssize_t i, PyObject *v)¶ - Part of the Stable ABI.
객체 v를 o의 i 번째 요소에 대입합니다. 실패하면 예외를 발생시키고
-1을 반환합니다; 성공하면0을 반환합니다. 이것은 파이썬 문장o[i] = v와 동등합니다. 이 함수는 v에 대한 참조를 훔치지 않습니다.v가
NULL이면, 요소가 삭제되지만, 이 기능은PySequence_DelItem()사용을 위해 폐지되었습니다.
-
int
PySequence_DelItem(PyObject *o, Py_ssize_t i)¶ - Part of the Stable ABI.
o 객체의 i 번째 요소를 삭제합니다. 실패하면
-1을 반환합니다. 이것은 파이썬 문장del o[i]와 동등합니다.
-
int
PySequence_SetSlice(PyObject *o, Py_ssize_t i1, Py_ssize_t i2, PyObject *v)¶ - Part of the Stable ABI.
시퀀스 객체 v를 시퀀스 객체 o의 i1에서 i2 사이의 슬라이스에 대입합니다. 이것은 파이썬 문장
o[i1:i2] = v와 동등합니다.
-
int
PySequence_DelSlice(PyObject *o, Py_ssize_t i1, Py_ssize_t i2)¶ - Part of the Stable ABI.
시퀀스 객체 o의 i1에서 i2 사이의 슬라이스를 삭제합니다. 실패하면
-1을 반환합니다. 이것은 파이썬 문장del o[i1:i2]와 동등합니다.
-
Py_ssize_t
PySequence_Count(PyObject *o, PyObject *value)¶ - Part of the Stable ABI.
o에 있는 value의 수를 반환합니다. 즉,
o[key] == value를 만족하는 key의 수를 반환합니다. 실패하면-1을 반환합니다. 이것은 파이썬 표현식o.count(value)와 동등합니다.
-
int
PySequence_Contains(PyObject *o, PyObject *value)¶ - Part of the Stable ABI.
o에 value가 있는지 확인합니다. o의 항목 중 하나가 value와 같으면
1을 반환하고, 그렇지 않으면0을 반환합니다. 에러 시-1을 반환합니다. 이는 파이썬 표현식value in o와 동등합니다.
-
Py_ssize_t
PySequence_Index(PyObject *o, PyObject *value)¶ - Part of the Stable ABI.
o[i] == value을 만족하는 첫 번째 인덱스 i를 반환합니다. 에러 시-1을 반환합니다. 이것은 파이썬 표현식o.index(value)와 동등합니다.
-
PyObject *
PySequence_List(PyObject *o)¶ - 반환값: 새 참조. Part of the Stable ABI.
시퀀스나 이터러블 o와 같은 내용을 가진 리스트 객체를 반환하거나, 실패하면
NULL을 반환합니다. 반환된 리스트는 새로운 것으로 보장됩니다. 이것은 파이썬 표현식list(o)와 동등합니다.
-
PyObject *
PySequence_Tuple(PyObject *o)¶ - 반환값: 새 참조. Part of the Stable ABI.
시퀀스나 이터러블 o와 같은 내용을 가진 튜플 객체를 반환하거나, 실패하면
NULL을 반환합니다. o가 튜플이면, 새로운 참조가 반환되고, 그렇지 않으면 튜플이 적절한 내용으로 만들어집니다. 이것은 파이썬 표현식tuple(o)와 동등합니다.
-
PyObject *
PySequence_Fast(PyObject *o, const char *m)¶ - 반환값: 새 참조. Part of the Stable ABI.
시퀀스나 이터러블 o를 다른
PySequence_Fast*계열 함수에서 사용할 수 있는 객체로 반환합니다. 객체가 시퀀스나 이터러블이 아니면 m을 메시지 텍스트로 사용하여TypeError를 발생시킵니다. 실패 시NULL을 반환합니다.PySequence_Fast*함수는 o가PyTupleObject나PyListObject라고 가정하고 o의 데이터 필드에 직접 액세스하기 때문에 이렇게 이름 붙였습니다.CPython 구현 세부 사항으로, o가 이미 시퀀스나 리스트면, 반환됩니다.
-
Py_ssize_t
PySequence_Fast_GET_SIZE(PyObject *o)¶ o의 길이를 반환하는데, o가
PySequence_Fast()에 의해 반환되었고, o가NULL이 아니라고 가정합니다. 크기는 o에 대해PySequence_Size()를 호출하여 얻을 수도 있지만,PySequence_Fast_GET_SIZE()는 o가 리스트나 튜플이라고 가정할 수 있으므로 더 빠릅니다.
-
PyObject *
PySequence_Fast_GET_ITEM(PyObject *o, Py_ssize_t i)¶ - 반환값: 빌린 참조.
o의 i 번째 요소를 반환하는데, o가
PySequence_Fast()에 의해 반환되었고, o가NULL이 아니며, i가 경계 내에 있다고 가정합니다.
-
PyObject **
PySequence_Fast_ITEMS(PyObject *o)¶ PyObject 포인터의 하부 배열을 반환합니다. o가
PySequence_Fast()에 의해 반환되었고, o가NULL이 아니라고 가정합니다.리스트의 크기가 변경되면, 재할당이 항목 배열을 재배치할 수 있음에 유의하십시오. 따라서, 시퀀스가 변경될 수 없는 문맥에서만 하부 배열 포인터를 사용하십시오.
-
PyObject *
PySequence_ITEM(PyObject *o, Py_ssize_t i)¶ - 반환값: 새 참조.
o의 i 번째 요소를 반환하거나, 실패하면
NULL을 반환합니다.PySequence_GetItem()의 빠른 형식이지만, o에 대해PySequence_Check()가 참인지 검사하지 않고, 음수 인덱스를 조정하지 않습니다.