スライスオブジェクト (slice object)

PyTypeObject PySlice_Type

スライスオブジェクトの型オブジェクトです。これは、Pythonレイヤにおける slice と同じオブジェクトです。

int PySlice_Check(PyObject *ob)

ob がスライスオブジェクトの場合に真を返します; obNULL であってはなりません。

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 を返します。

バージョン 3.2 で変更: 以前は、slice 引数の型は PySliceObject* でした。

Ellipsis Object

PyObject *Py_Ellipsis

The Python Ellipsis object. This object has no methods. It needs to be treated just like any other object with respect to reference counts. Like Py_None it is a singleton object.