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

PyTypeObject `PySlice_Type`

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

int `PySlice_Check`( PyObject *ob)

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

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 オブジェクト

PyObject *`Py_Ellipsis`

  Python における `Ellipsis` オブジェクトです。 このオブジェクトはメソッドを持ちません。 参照カウントの点では、他のオブジェクトと同様に扱う必要があります。 `Py_None` のように、これもシングルトンオブジェクトです。