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

PyTypeObject PySlice_Type
スライスオブジェクトの型オブジェクトです。 types.SliceType と同じです。

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

PyObject* PySlice_New(PyObject *start, PyObject *stop, PyObject *step)
戻り値: 新たな参照.
指定した値から新たなスライスオブジェクトを返します。パラメタ start, stop, および step はスライスオブジェクトに おける同名の属性として用いられます。これらの値はいずれも NULL にでき、対応する値には None が使われます。新たな オブジェクトをアロケーションできない場合には NULL を返します。

int PySlice_GetIndices(PySliceObject *slice, int length, int *start, int *stop, int *step)
スライスオブジェクト slice における start, stop, および step のインデクス値を取得します。このときシーケンスの 長さを length と仮定します。length よりも大きな インデクスになるとエラーとして扱います。

成功のときには 0 を、エラーのときには例外をセットせずに -1 を返します (ただし、指定インデクスのいずれか一つが None ではなく、かつ整数に変換できなかった場合を 除きます。この場合、 -1 を返して例外をセットします)。

おそらくこの関数を使う気にはならないでしょう。バージョン 2.3 以前の Python でスライスオブジェクトを使いたいのなら、 PySlice_GetIndicesEx のソースを適切に名前変更して 自分の拡張モジュールのソースコード内に組み込むとよいでしょう。

int PySlice_GetIndicesEx(PySliceObject *slice, int length, int *start, int *stop, int *step, int *slicelength)
PySlice_GetIndices の置き換えとして使える関数です。

スライスオブジェクト slice における start, stop, および step のインデクス値を取得します。このときシーケンスの 長さを length と仮定します。スライスの長さを slicelength に記憶します。境界をはみだしたインデクスは、通常のスライスを扱うのと 同じ一貫したやり方でクリップされます。

成功のときには 0 を、エラーのときには例外をセットして -1 を返します。

バージョン 2.3 で 新たに追加 された仕様です。

ご意見やご指摘をお寄せになりたい方は、 このドキュメントについて... をご覧ください。