This document is for an old version of Python that is no longer supported. You should upgrade and read the Python documentation for the current stable release.

# (通常)整数型オブジェクト (plain integer object)

`PyIntObject`

  この `PyObject` のサブタイプは整数型を表現します。

PyTypeObject `PyInt_Type`

  この `PyTypeObject` のインスタンスは Python の (長整数でない)整数型を表現します。これは Python レイヤにおける `int` や `types.IntType` と同じオブジェクトです。

int `PyInt_Check`(PyObject *o)

  o が `PyInt_Type` 型か `PyInt_Type` 型のサブタイプであるときに真を返します。

  バージョン 2.2 で変更: サブタイプを引数にとれるようになりました.

int `PyInt_CheckExact`(PyObject *o)

  o が `PyInt_Type` 型で、かつ `PyInt_Type` 型のサブタイプでないときに真を返します。

  バージョン 2.2 で追加.

PyObject* `PyInt_FromString`(char *str, char **pend, int base)
  Return value: New reference.

  str の文字列値に基づいて、新たな `PyIntObject` または `PyLongObject` を返します。このとき base を基数として文字列を解釈します。 pend が NULL でなければ、 `*pend` は str 中で数が表現されている部分以後の先頭の文字のアドレスを指しています。 base が `0` ならば、 str の先頭の文字列に基づいて基数を決定します: もし str が `'0x'` または `'0X'` で始まっていれば、基数に 16 を使います; str が `'0'` で始まっていれば、基数に 8 を使います; その他の場合には基数に 10 を使います。 base が `0` でなければ、 base は `2` 以上 `36` 以下の数でなければなりません。先頭に空白がある場合は無視されます。数字が全くない場合、 `ValueError` が送出されます。使用しているマシンの `long int` 型で表現し切れないくらい大きな数が文字列に入っており、オーバフロー警告が抑制されていれば、 `PyLongObject` を返します。オーバフロー警告が抑制されていなければ、 NULL を返します。

PyObject* `PyInt_FromLong`(long ival)
  Return value: New reference.

  ival の値を使って新たな整数オブジェクトを生成します。

  現在の実装では、`-5` から `256` までの全ての整数に対する整数オブジェクトの配列を保持するようにしており、この範囲の数を生成すると、実際には既存のオブジェクトに対する参照が返るようになっています。従って、`1` の値を変えることすら可能です。変えてしまった場合の Python の挙動は未定義です :-)

PyObject* `PyInt_FromSsize_t`(Py_ssize_t ival)
  Return value: New reference.

  ival の値を使って新たな整数オブジェクトを生成します。値が `LONG_MAX` より大きいか `LONG_MIN` より小さい場合、長整数オブジェクトを返します。

  バージョン 2.5 で追加.

PyObject* `PyInt_FromSize_t`(size_t ival)

  ival の値を使って新たな整数オブジェクトを生成します。値が `LONG_MAX` を超えている場合、長整数オブジェクトを返します。

  バージョン 2.5 で追加.

long `PyInt_AsLong`(PyObject *io)

  オブジェクトがまだ `PyIntObject` でなければまず型キャストを試み、次にその値を返します。エラーが発生した場合、 `-1` が返されます。その時呼び出し側は、 `PyErr_Occurred()` を使って、エラーが発生したのか、単に値が `-1` だったのかを判断するべきです。

long `PyInt_AS_LONG`(PyObject *io)

  オブジェクト io の値を返します。エラーチェックを行いません。

unsigned long `PyInt_AsUnsignedLongMask`(PyObject *io)

  オブジェクトがまだ `PyIntObject` または `PyLongObject` でなければまず型キャストを試み、次にその値を `unsigned long` 型で返します。この関数はオーバフローをチェックしません。

  バージョン 2.3 で追加.

unsigned PY_LONG_LONG `PyInt_AsUnsignedLongLongMask`(PyObject *io)

  オブジェクトがまだ `PyIntObject` または `PyLongObject` でなければまず型キャストを試み、次にその値を `unsigned long long` 型で返します。オーバフローをチェックしません。

  バージョン 2.3 で追加.

Py_ssize_t `PyInt_AsSsize_t`(PyObject *io)

  オブジェクトがまだ `PyIntObject` または `PyLongObject` でなければまず型キャストを試み、次にその値を `Py_ssize_t` 型で返します。

  バージョン 2.5 で追加.

long `PyInt_GetMax`()

  システムの知識に基づく、扱える最大の整数値 (システムのヘッダファイルに定義されている `LONG_MAX`) を返します。

int `PyInt_ClearFreeList`()

  整数の free list をクリアします。解放できなかった要素の数を返します。

  バージョン 2.6 で追加.