### ナビゲーション

- 索引
- モジュール |
- 次へ |
- 前へ |
- Python 2.7ja1 documentation »
- Python/C API リファレンスマニュアル »
- 具象オブジェクト (concrete object) レイヤ »

# 長整数型オブジェクト (long integer object)

`PyLongObject`

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

PyTypeObject `PyLong_Type`

  この `PyTypeObject` のインスタンスは Python 長整数型を表現します。これは `long` や `types.LongType` と同じオブジェクトです。

int `PyLong_Check`(PyObject *p)

  引数が `PyLongObject` か `PyLongObject` のサブタイプのときに真を返します。

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

int `PyLong_CheckExact`(PyObject *p)

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

  バージョン 2.2 で追加.

PyObject* `PyLong_FromLong`(long v)
  Return value: New reference.

  v から新たな `PyLongObject` オブジェクトを生成して返します。失敗のときには NULL を返します。

PyObject* `PyLong_FromUnsignedLong`(unsigned long v)
  Return value: New reference.

  C の `unsigned long` 型から新たな `PyLongObject` オブジェクトを生成して返します。失敗のときには NULL を返します。

PyObject* `PyLong_FromSsize_t`(Py_ssize_t v)

  C の `Py_ssize_t` 型から新たな `PyLongObject` オブジェクトを生成して返します。失敗のときには NULL を返します。

  バージョン 2.6 で追加.

PyObject* `PyLong_FromSize_t`(size_t v)

  C の `size_t` 型から新たな `PyLongObject` オブジェクトを生成して返します。失敗のときには NULL を返します。

  バージョン 2.6 で追加.

PyObject* `PyLong_FromSsize_t`(Py_ssize_t v)

  v から新しい `PyLongObject` オブジェクトを返します。失敗したら NULL を返します。

  バージョン 2.6 で追加.

PyObject* `PyLong_FromSize_t`(size_t v)

  v から新しい `PyLongObject` オブジェクトを返します。失敗したら NULL を返します。

  バージョン 2.6 で追加.

PyObject* `PyLong_FromLongLong`(PY_LONG_LONG v)
  Return value: New reference.

  C の `long long` 型から新たな `PyLongObject` オブジェクトを生成して返します。失敗のときには NULL を返します。

PyObject* `PyLong_FromUnsignedLongLong`(unsigned PY_LONG_LONG v)
  Return value: New reference.

  C の `unsigned long long` 型から新たな `PyLongObject` オブジェクトを生成して返します。失敗のときには NULL を返します。

PyObject* `PyLong_FromDouble`(double v)
  Return value: New reference.

  v の整数部から新たな `PyLongObject` オブジェクトを生成して返します。失敗のときには NULL を返します。

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

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

PyObject* `PyLong_FromUnicode`(Py_UNICODE *u, Py_ssize_t length, int base)
  Return value: New reference.

  Unicode の数字配列を Python の長整数型に変換します。最初のパラメタ u は、 Unicode 文字列の最初の文字を指し、 length には文字数を指定し、 base には変換時の基数を指定します。基数は範囲 [2, 36] になければなりません; 範囲外の基数を指定すると、 `ValueError` を送出します。

  バージョン 1.6 で追加.

  バージョン 2.5 で変更: この関数は以前は length の型に `int` を利用していました。 この変更により、 64bit システムを正しくサポートするには修正が必要になります。

PyObject* `PyLong_FromVoidPtr`(void *p)
  Return value: New reference.

  Python 整数型または長整数型をポインタ p から生成します。ポインタに入れる値は `PyLong_AsVoidPtr()` を使って得られるような値です。

  バージョン 1.5.2 で追加.

  バージョン 2.5 で変更: 整数値がLONG_MAXより大きい場合は、正の長整数を返します.

long `PyLong_AsLong`(PyObject *pylong)

  pylong の指す長整数値を、 C の `long` 型表現で返します。 pylong が `LONG_MAX` よりも大きい場合、 `OverflowError` を送出し、 `-1` を返します。

long `PyLong_AsLongAndOverflow`(PyObject *pylong, int *overflow)

  pylong の値を `long` で返す。 pylong が `LONG_MAX` より大きかったり `LONG_MIN` より小さい場合、 *overflow に `1` か `-1` を設定して `-1` を返します。それ以外の場合は *overflow に `0` を設定します。なにか例外が発生した場合は(TypeError や MemoryErrorなど)、 *overflow は 0 で戻り値が `-1` になります。

  バージョン 2.7 で追加.

PY_LONG_LONG `PyLong_AsLongLongAndOverflow`(PyObject *pylong, int *overflow)

  pylong の値を `long long` で返す。 pylong が `PY_LLONG_MAX` より大きかったり `PY_LLONG_MIN` より小さい場合、 *overflow に `1` か `-1` を設定して `-1` を返します。それ以外の場合は *overflow に `0` を設定します。なにか例外が発生した場合は(TypeError や MemoryErrorなど)、 *overflow は 0 で戻り値が `-1` になります。

  バージョン 2.7 で追加.

Py_ssize_t `PyLong_AsSsize_t`(PyObject *pylong)

  pylong の指す長整数値を、 C の `Py_ssize_t` 型表現で返します。 pylong が `PY_SSIZE_T_MAX` よりも大きい場合、 `OverflowError` を送出し、 `-1` を返します。

  バージョン 2.6 で追加.

unsigned long `PyLong_AsUnsignedLong`(PyObject *pylong)

  pylong の指す長整数値を、 C の `unsigned long` 型表現で返します。 pylong が `ULONG_MAX` よりも大きい場合、 `OverflowError` を送出します。

Py_ssize_t `PyLong_AsSsize_t`(PyObject *pylong)

  pylong の指す長整数値を、 C の `Py_ssize_t` 型表現で返します。 pylong が `PY_SSIZE_T_MAX` より大きい場合、 `OverflowError` を発生させます。

  バージョン 2.6 で追加.

PY_LONG_LONG `PyLong_AsLongLong`(PyObject *pylong)

  pylong の指す長整数値を、 C の `long long` 型表現で返します。 pylong が `long long` で表せない場合、 `OverflowError` を送出し `-1` を返します。

  バージョン 2.2 で追加.

unsigned PY_LONG_LONG `PyLong_AsUnsignedLongLong`(PyObject *pylong)

  pylong の指す値を、 C の `unsigned long long` 型表現で返します。 pylong が `unsigned long long` で表せない場合、 `OverflowError` を発生させて、 `(unsigned long long)-1` を返します。

  バージョン 2.2 で追加.

  バージョン 2.7 で変更: 負の pylong が `TypeError` ではなく `OverflowError` を発生させるようになりました。

unsigned long `PyLong_AsUnsignedLongMask`(PyObject *io)

  Python 長整数値を、オーバフローチェックを行わずに C の `unsigned long` 型表現で返します。

  バージョン 2.3 で追加.

unsigned PY_LONG_LONG `PyLong_AsUnsignedLongLongMask`(PyObject *io)

  Python 長整数値を、オーバフローチェックを行わずに C の `unsigned long long` 型表現で返します。

  バージョン 2.3 で追加.

double `PyLong_AsDouble`(PyObject *pylong)

  pylong の指す値を、 C の `double` 型表現で返します。 pylong が `double` を使って近似表現できない場合、 `OverflowError` 例外を送出して `-1.0` を返します。

void* `PyLong_AsVoidPtr`(PyObject *pylong)

  Python の整数型か長整数型を指す pylong を、 C の `void` ポインタに変換します。 pylong を変換できなければ、 `OverflowError` を送出します。この関数は `PyLong_FromVoidPtr()` で値を生成するときに使うような `void` ポインタ型を生成できるだけです。

  バージョン 1.5.2 で追加.

  バージョン 2.5 で変更: 値が0..LONG_MAXの範囲の外だった場合、符号付き整数と符号無し整数の両方とも利用可能です.

### ナビゲーション

- 索引
- モジュール |
- 次へ |
- 前へ |
- Python 2.7ja1 documentation »
- Python/C API リファレンスマニュアル »
- 具象オブジェクト (concrete object) レイヤ »