整数オブジェクト
すべての整数は、任意のサイズの「長い」整数オブジェクトとして実装されます。
エラーの場合、ほとんどのPyLong_As*
APIは(return type)-1
を返しますが、これは数値と区別できません。 PyErr_Occurred()を使用して明確にします。
- type PyLongObject
- PyObject のこのサブタイプは、Python整数オブジェクトを表します。
- PyTypeObject PyLong_Type
- PyTypeObject のこのインスタンスは、Python整数型を表します。 これは、Pythonレイヤーの int と同じオブジェクトです。
- int PyLong_Check(PyObject *p)
- 引数が PyLongObject または PyLongObject のサブタイプである場合はtrueを返します。 この関数は常に成功します。
- int PyLong_CheckExact(PyObject *p)
- 引数が PyLongObject であるが、 PyLongObject のサブタイプではない場合、trueを返します。 この関数は常に成功します。
- PyObject *PyLong_FromLong(long v)
失敗した場合は、 v または
NULL
から新しい PyLongObject オブジェクトを返します。現在の実装では、
-5
と256
の間のすべての整数の整数オブジェクトの配列が保持されます。その範囲で整数を作成すると、実際には既存のオブジェクトへの参照が返されます。
- PyObject *PyLong_FromUnsignedLong(unsigned long v)
- 失敗した場合は、C unsigned long または
NULL
から新しい PyLongObject オブジェクトを返します。
- PyObject *PyLong_FromSsize_t(Py_ssize_t v)
- 失敗した場合は、C
Py_ssize_t
またはNULL
から新しい PyLongObject オブジェクトを返します。
- PyObject *PyLong_FromSize_t(size_t v)
- 失敗した場合は、C
size_t
またはNULL
から新しい PyLongObject オブジェクトを返します。
- PyObject *PyLong_FromLongLong(long long v)
- 失敗した場合は、C long long または
NULL
から新しい PyLongObject オブジェクトを返します。
- PyObject *PyLong_FromUnsignedLongLong(unsigned long long v)
- 失敗した場合は、C unsigned long long または
NULL
から新しい PyLongObject オブジェクトを返します。
- PyObject *PyLong_FromDouble(double v)
- v の整数部分から新しい PyLongObject オブジェクトを返すか、失敗した場合は
NULL
を返します。
- PyObject *PyLong_FromString(const char *str, char **pend, int base)
- str の文字列値に基づいて、新しい PyLongObject を返します。これは、 base の基数に従って解釈されます。 pend が
NULL
以外の場合、 * pend は、番号の表現に続く str の最初の文字を指します。 base が0
の場合、 str は整数リテラル定義を使用して解釈されます。 この場合、ゼロ以外の10進数の先行ゼロは、 ValueError を発生させます。 base が0
でない場合は、2
と36
の間にある必要があります。 基本指定子の後および数字の間の先頭のスペースと単一の下線は無視されます。 数字がない場合、 ValueError が発生します。
- PyObject *PyLong_FromUnicodeObject(PyObject *u, int base)
文字列 u 内のUnicode桁のシーケンスをPython整数値に変換します。
バージョン3.3の新機能。
- PyObject *PyLong_FromVoidPtr(void *p)
- ポインター p からPython整数を作成します。 ポインタ値は、 PyLong_AsVoidPtr()を使用して結果の値から取得できます。
- long PyLong_AsLong(PyObject *obj)
obj のC long 表現を返します。 obj が PyLongObject のインスタンスでない場合は、最初にその
__index__()
メソッド(存在する場合)を呼び出して、 PyLongObject に変換します。obj の値が long の範囲外の場合は、 OverflowError を発生させます。
エラー時に
-1
を返します。 PyErr_Occurred()を使用して明確にします。バージョン3.8で変更:可能な場合は
__index__()
を使用します。バージョン3.10で変更:この関数は
__int__()
を使用しなくなります。
- long PyLong_AsLongAndOverflow(PyObject *obj, int *overflow)
obj のC long 表現を返します。 obj が PyLongObject のインスタンスでない場合は、最初にその
__index__()
メソッド(存在する場合)を呼び出して、 PyLongObject に変換します。obj の値が
LONG_MAX
より大きいか、LONG_MIN
より小さい場合は、 * overlay を1
または-1
、および-1
を返します。 それ以外の場合は、 * overlay を0
に設定します。 その他の例外が発生した場合は、 * overlay を0
に設定し、通常どおり-1
を返します。エラー時に
-1
を返します。 PyErr_Occurred()を使用して明確にします。バージョン3.8で変更:可能な場合は
__index__()
を使用します。バージョン3.10で変更:この関数は
__int__()
を使用しなくなります。
- long long PyLong_AsLongLong(PyObject *obj)
obj のC long long 表現を返します。 obj が PyLongObject のインスタンスでない場合は、最初にその
__index__()
メソッド(存在する場合)を呼び出して、 PyLongObject に変換します。obj の値が long long の範囲外の場合は、 OverflowError を発生させます。
エラー時に
-1
を返します。 PyErr_Occurred()を使用して明確にします。バージョン3.8で変更:可能な場合は
__index__()
を使用します。バージョン3.10で変更:この関数は
__int__()
を使用しなくなります。
- long long PyLong_AsLongLongAndOverflow(PyObject *obj, int *overflow)
obj のC long long 表現を返します。 obj が PyLongObject のインスタンスでない場合は、最初にその
__index__()
メソッド(存在する場合)を呼び出して、 PyLongObject に変換します。obj の値が
LLONG_MAX
より大きいか、LLONG_MIN
より小さい場合は、 * overlay を1
または-1
、および-1
を返します。 それ以外の場合は、 * overlay を0
に設定します。 その他の例外が発生した場合は、 * overlay を0
に設定し、通常どおり-1
を返します。エラー時に
-1
を返します。 PyErr_Occurred()を使用して明確にします。バージョン3.2の新機能。
バージョン3.8で変更:可能な場合は
__index__()
を使用します。バージョン3.10で変更:この関数は
__int__()
を使用しなくなります。
- Py_ssize_t PyLong_AsSsize_t(PyObject *pylong)
pylong のC
Py_ssize_t
表現を返します。 pylong は、 PyLongObject のインスタンスである必要があります。pylong の値が
Py_ssize_t
の範囲外の場合は、 OverflowError を発生させます。エラー時に
-1
を返します。 PyErr_Occurred()を使用して明確にします。
- unsigned long PyLong_AsUnsignedLong(PyObject *pylong)
pylong のC unsigned long 表現を返します。 pylong は、 PyLongObject のインスタンスである必要があります。
pylong の値が unsigned long の範囲外の場合は、 OverflowError を発生させます。
エラー時に
(unsigned long)-1
を返します。 PyErr_Occurred()を使用して明確にします。
- size_t PyLong_AsSize_t(PyObject *pylong)
pylong のC
size_t
表現を返します。 pylong は、 PyLongObject のインスタンスである必要があります。pylong の値が
size_t
の範囲外の場合は、 OverflowError を発生させます。エラー時に
(size_t)-1
を返します。 PyErr_Occurred()を使用して明確にします。
- unsigned long long PyLong_AsUnsignedLongLong(PyObject *pylong)
pylong のC unsigned long long 表現を返します。 pylong は、 PyLongObject のインスタンスである必要があります。
pylong の値が unsigned long long の範囲外の場合は、 OverflowError を発生させます。
エラー時に
(unsigned long long)-1
を返します。 PyErr_Occurred()を使用して明確にします。バージョン3.1で変更:負の pylong は、 TypeError ではなく OverflowError を発生させるようになりました。
- unsigned long PyLong_AsUnsignedLongMask(PyObject *obj)
obj のC unsigned long 表現を返します。 obj が PyLongObject のインスタンスでない場合は、最初にその
__index__()
メソッド(存在する場合)を呼び出して、 PyLongObject に変換します。obj の値が unsigned long の範囲外の場合は、
ULONG_MAX + 1
を法としてその値の減少を返します。エラー時に
(unsigned long)-1
を返します。 PyErr_Occurred()を使用して明確にします。バージョン3.8で変更:可能な場合は
__index__()
を使用します。バージョン3.10で変更:この関数は
__int__()
を使用しなくなります。
- unsigned long long PyLong_AsUnsignedLongLongMask(PyObject *obj)
obj のC unsigned long long 表現を返します。 obj が PyLongObject のインスタンスでない場合は、最初にその
__index__()
メソッド(存在する場合)を呼び出して、 PyLongObject に変換します。obj の値が unsigned long long の範囲外の場合は、
ULLONG_MAX + 1
を法としてその値の減少を返します。エラー時に
(unsigned long long)-1
を返します。 PyErr_Occurred()を使用して明確にします。バージョン3.8で変更:可能な場合は
__index__()
を使用します。バージョン3.10で変更:この関数は
__int__()
を使用しなくなります。
- double PyLong_AsDouble(PyObject *pylong)
pylong のC double 表現を返します。 pylong は、 PyLongObject のインスタンスである必要があります。
pylong の値が double の範囲外の場合は、 OverflowError を発生させます。
エラー時に
-1.0
を返します。 PyErr_Occurred()を使用して明確にします。
- void *PyLong_AsVoidPtr(PyObject *pylong)
Python整数 pylong をC void ポインターに変換します。 pylong を変換できない場合、 OverflowError が発生します。 これは、 PyLong_FromVoidPtr()で作成された値に対して使用可能な void ポインターを生成することのみが保証されています。
エラー時に
NULL
を返します。 PyErr_Occurred()を使用して明確にします。