スライスオブジェクト (slice object)¶
- 
PyTypeObject PySlice_Type¶
- スライスオブジェクトの型オブジェクトです。これは、Pythonレイヤにおける - sliceと同じオブジェクトです。
- 
PyObject* PySlice_New(PyObject *start, PyObject *stop, PyObject *step)¶
- Return value: New reference.指定した値から新たなスライスオブジェクトを返します。パラメタ start, stop, および step はスライスオブジェクトにおける同名の属性として用いられます。これらの値はいずれも NULLにでき、対応する値にはNoneが使われます。新たなオブジェクトをアロケーションできない場合にはNULLを返します。
- 
int PySlice_GetIndices(PyObject *slice, Py_ssize_t length, Py_ssize_t *start, Py_ssize_t *stop, Py_ssize_t *step)¶
- スライスオブジェクト slice における start, stop, および step のインデクス値を取得します。このときシーケンスの長さを length と仮定します。length よりも大きなインデクスになるとエラーとして扱います。 - 成功のときには - 0を、エラーのときには例外をセットせずに- -1を返します (ただし、指定インデクスのいずれか一つが- Noneではなく、かつ整数に変換できなかった場合を除きます。この場合、- -1を返して例外をセットします)。- おそらく、あなたはこの関数を使いたくないでしょう。 - バージョン 3.2 で変更: 以前は、slice 引数の型は - PySliceObject*でした。
- 
int PySlice_GetIndicesEx(PyObject *slice, Py_ssize_t length, Py_ssize_t *start, Py_ssize_t *stop, Py_ssize_t *step, Py_ssize_t *slicelength)¶
- PySlice_GetIndices()の便利な代替です。 slice における、start, stop および step のインデクス値を取得をします。シーケンスの長さを length 、スライスの長さを slicelength に格納します。境界外のインデクスは通常のスライスと一貫した方法でクリップされます。- 成功のときには - 0を、エラーのときには例外をセットして- -1を返します。- 注釈 - This function is considered not safe for resizable sequences. Its invocation should be replaced by a combination of - PySlice_Unpack()and- PySlice_AdjustIndices()where- if (PySlice_GetIndicesEx(slice, length, &start, &stop, &step, &slicelength) < 0) { // return error } - is replaced by - if (PySlice_Unpack(slice, &start, &stop, &step) < 0) { // return error } slicelength = PySlice_AdjustIndices(length, &start, &stop, step); - バージョン 3.2 で変更: 以前は、slice 引数の型は - PySliceObject*でした。- バージョン 3.6.1 で変更: If - Py_LIMITED_APIis not set or set to the value between- 0x03050400and- 0x03060000(not including) or- 0x03060100or higher- PySlice_GetIndicesEx()is implemented as a macro using- PySlice_Unpack()and- PySlice_AdjustIndices(). Arguments start, stop and step are evaluated more than once.- バージョン 3.6.1 で非推奨: If - Py_LIMITED_APIis set to the value less than- 0x03050400or between- 0x03060000and- 0x03060100(not including)- PySlice_GetIndicesEx()is a deprecated function.
- 
int PySlice_Unpack(PyObject *slice, Py_ssize_t *start, Py_ssize_t *stop, Py_ssize_t *step)¶
- Extract the start, stop and step data members from a slice object as C integers. Silently reduce values larger than - PY_SSIZE_T_MAXto- PY_SSIZE_T_MAX, silently boost the start and stop values less than- PY_SSIZE_T_MINto- PY_SSIZE_T_MIN, and silently boost the step values less than- -PY_SSIZE_T_MAXto- -PY_SSIZE_T_MAX.- Return - -1on error,- 0on success.- バージョン 3.6.1 で追加. 
- 
Py_ssize_t PySlice_AdjustIndices(Py_ssize_t length, Py_ssize_t *start, Py_ssize_t *stop, Py_ssize_t step)¶
- Adjust start/end slice indices assuming a sequence of the specified length. Out of bounds indices are clipped in a manner consistent with the handling of normal slices. - Return the length of the slice. Always successful. Doesn't call Python code. - バージョン 3.6.1 で追加.