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

PyIntObject
この PyObject のサブタイプは Python の整数型オブジェクトを表現します。

PyTypeObject PyInt_Type
この PyTypeObject のインスタンスは Python の (長整数でない)整数型を表現します。 これは inttypes.IntType と同じオブジェクトです。

int PyInt_Check(PyObject *o)
oPyInt_Type 型か PyInt_Type 型のサブタイプであるときに真を返します。 バージョン 2.2 で 変更 された仕様: サブタイプを引数にとれるようになりました

int PyInt_CheckExact(PyObject *o)
oPyInt_Type 型で、かつ PyInt_Type 型のサブタイプでないときに真を返します。 バージョン 2.2 で 新たに追加 された仕様です。

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

PyObject* PyInt_FromLong(long ival)
戻り値: 新たな参照.
ival の値を使って新たな整数オブジェクトを生成します。

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

PyObject* PyInt_FromSsize_t(Py_ssize_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でなければまず型キャストを試み、 次にその値をPy_ssize_t型で返します。 バージョン 2.5 で 新たに追加 された仕様です。

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

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