시퀀스 프로토콜¶
-
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)¶
- Return value: New reference. Part of the Stable ABI.
성공 시 o1와 o2의 이어붙이기를 반환하고, 실패하면
NULL을 반환합니다. 이것은 파이썬 표현식o1 + o2와 동등합니다.
-
PyObject *PySequence_Repeat(PyObject *o, Py_ssize_t count)¶
- Return value: New reference. Part of the Stable ABI.
시퀸스 객체 o를 count 번 반복한 결과를 반환하거나, 실패 시
NULL을 반환합니다. 이것은 파이썬 표현식o * count와 동등합니다.
-
PyObject *PySequence_InPlaceConcat(PyObject *o1, PyObject *o2)¶
- Return value: New reference. Part of the Stable ABI.
성공 시 o1와 o2의 이어붙이기를 반환하고, 실패하면
NULL을 반환합니다. 이 연산은 o1가 지원하면 제자리에서(in-place) 수행됩니다. 이것은 파이썬 표현식o1 += o2와 동등합니다.
-
PyObject *PySequence_InPlaceRepeat(PyObject *o, Py_ssize_t count)¶
- Return value: New reference. Part of the Stable ABI.
시퀸스 객체 o를 count 번 반복한 결과를 반환하거나, 실패 시
NULL을 반환합니다. 이 연산은 o가 지원하면 제자리에서(in-place) 수행됩니다. 이것은 파이썬 표현식o *= count와 동등합니다.
-
PyObject *PySequence_GetItem(PyObject *o, Py_ssize_t i)¶
- Return value: New reference. Part of the Stable ABI.
o의 i 번째 요소를 반환하거나, 실패하면
NULL을 반환합니다. 이것은 파이썬 표현식o[i]와 동등합니다.
-
PyObject *PySequence_GetSlice(PyObject *o, Py_ssize_t i1, Py_ssize_t i2)¶
- Return value: New reference. 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에 대한 참조를 훔치지 않습니다.If v is
NULL, the element is deleted, but this feature is deprecated in favour of usingPySequence_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)¶
- Return value: New reference. Part of the Stable ABI.
시퀀스나 이터러블 o와 같은 내용을 가진 리스트 객체를 반환하거나, 실패하면
NULL을 반환합니다. 반환된 리스트는 새로운 것으로 보장됩니다. 이것은 파이썬 표현식list(o)와 동등합니다.
-
PyObject *PySequence_Tuple(PyObject *o)¶
- Return value: New reference. Part of the Stable ABI.
시퀀스나 이터러블 o와 같은 내용을 가진 튜플 객체를 반환하거나, 실패하면
NULL을 반환합니다. o가 튜플이면, 새로운 참조가 반환되고, 그렇지 않으면 튜플이 적절한 내용으로 만들어집니다. 이것은 파이썬 표현식tuple(o)와 동등합니다.
-
PyObject *PySequence_Fast(PyObject *o, const char *m)¶
- Return value: New reference. 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)¶
Returns the length of o, assuming that o was returned by
PySequence_Fast()and that o is notNULL. The size can also be retrieved by callingPySequence_Size()on o, butPySequence_Fast_GET_SIZE()is faster because it can assume o is a list or tuple.
-
PyObject *PySequence_Fast_GET_ITEM(PyObject *o, Py_ssize_t i)¶
- Return value: Borrowed reference.
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)¶
- Return value: New reference.
o의 i 번째 요소를 반환하거나, 실패하면
NULL을 반환합니다.PySequence_GetItem()의 빠른 형식이지만, o에 대해PySequence_Check()가 참인지 검사하지 않고, 음수 인덱스를 조정하지 않습니다.