整数型オブジェクト (integer object)¶
すべての整数は任意の長さをもつ "long" 整数として実装されます。
エラーが起きると、ほとんどの PyLong_As*
API は (return type)-1
を返しますが、これは数値と見分けが付きません。
見分けを付けるためには PyErr_Occurred()
を使ってください。
-
type
PyLongObject
¶ - Part of the Limited API (as an opaque struct).
この
PyObject
のサブタイプは整数型を表現します。
-
PyTypeObject
PyLong_Type
¶ - Part of the Stable ABI.
この
PyTypeObject
のインスタンスは Python 整数型を表現します。これは Python レイヤにおけるint
と同じオブジェクトです。
-
int
PyLong_Check
(PyObject *p)¶ Return true if its argument is a
PyLongObject
or a subtype ofPyLongObject
. This function always succeeds.
-
int
PyLong_CheckExact
(PyObject *p)¶ Return true if its argument is a
PyLongObject
, but not a subtype ofPyLongObject
. This function always succeeds.
-
PyObject *
PyLong_FromLong
(long v)¶ - Return value: New reference. Part of the Stable ABI.
v から新たな
PyLongObject
オブジェクトを生成して返します。失敗のときにはNULL
を返します。The current implementation keeps an array of integer objects for all integers between
-5
and256
. When you create an int in that range you actually just get back a reference to the existing object.
-
PyObject *
PyLong_FromUnsignedLong
(unsigned long v)¶ - Return value: New reference. Part of the Stable ABI.
Cの unsigned long から新たな
PyLongObject
オブジェクトを生成して返します。失敗した際にはNULL
を返します。
-
PyObject *
PyLong_FromSsize_t
(Py_ssize_t v)¶ - Return value: New reference. Part of the Stable ABI.
C の
Py_ssize_t
型から新たなPyLongObject
オブジェクトを生成して返します。 失敗のときにはNULL
を返します。
-
PyObject *
PyLong_FromSize_t
(size_t v)¶ - Return value: New reference. Part of the Stable ABI.
C の
size_t
型から新たなPyLongObject
オブジェクトを生成して返します。 失敗のときにはNULL
を返します。
-
PyObject *
PyLong_FromLongLong
(long long v)¶ - Return value: New reference. Part of the Stable ABI.
C の long long 型から新たな
PyLongObject
オブジェクトを生成して返します。失敗のときにはNULL
を返します。
-
PyObject *
PyLong_FromUnsignedLongLong
(unsigned long long v)¶ - Return value: New reference. Part of the Stable ABI.
C の unsigned long long 型から新たな
PyLongObject
オブジェクトを生成して返します。失敗のときにはNULL
を返します。
-
PyObject *
PyLong_FromDouble
(double v)¶ - Return value: New reference. Part of the Stable ABI.
v の整数部から新たな
PyLongObject
オブジェクトを生成して返します。失敗のときにはNULL
を返します。
-
PyObject *
PyLong_FromString
(const char *str, char **pend, int base)¶ - Return value: New reference. Part of the Stable ABI.
str の文字列値に基づいて、新たな
PyLongObject
を返します。 このとき base を基数として文字列を解釈します。 pend がNULL
でない場合は、 *pend は str 中で数が表現されている部分以降の先頭文字のアドレスを指しています。 base が0
の場合は、 str は 整数リテラル の定義を使って解釈されます; この場合では、先頭に 0 がある 0 でない十進数はValueError
を送出します。 base が0
でなければ、 base は2
以上36
以下の数でなければなりません。 先頭の空白、基数の指定の後や数字の間にある単一のアンダースコアは無視されます。 数字が全くない場合、ValueError
が送出されます。
-
PyObject *
PyLong_FromUnicodeObject
(PyObject *u, int base)¶ - Return value: New reference.
Convert a sequence of Unicode digits in the string u to a Python integer value.
バージョン 3.3 で追加.
-
PyObject *
PyLong_FromVoidPtr
(void *p)¶ - Return value: New reference. Part of the Stable ABI.
ポインタ p から Python 整数値を生成します。ポインタの値は
PyLong_AsVoidPtr()
を適用した結果から取得されます。
-
long
PyLong_AsLong
(PyObject *obj)¶ - Part of the Stable ABI.
Return a C long representation of obj. If obj is not an instance of
PyLongObject
, first call its__index__()
method (if present) to convert it to aPyLongObject
.もし obj の値が long の範囲外であれば、
OverflowError
を送出します。エラーが起きたときに
-1
を返します。 見分けを付けるためにはPyErr_Occurred()
を使ってください。バージョン 3.8 で変更: 可能であれば
__index__()
を使うようになりました。バージョン 3.10 で変更: This function will no longer use
__int__()
.
-
long
PyLong_AsLongAndOverflow
(PyObject *obj, int *overflow)¶ - Part of the Stable ABI.
Return a C long representation of obj. If obj is not an instance of
PyLongObject
, first call its__index__()
method (if present) to convert it to aPyLongObject
.もし、 obj の値が
LONG_MAX
より大きいか、LONG_MIN
より小さければ、 *overflow は、それぞれ1
か-1
に設定され、-1
を返します; さもなければ *overflow は0
に設定されます。もし、ほかの例外が発生した場合は *overflow が0
に設定され-1
を返します。エラーが起きたときに
-1
を返します。 見分けを付けるためにはPyErr_Occurred()
を使ってください。バージョン 3.8 で変更: 可能であれば
__index__()
を使うようになりました。バージョン 3.10 で変更: This function will no longer use
__int__()
.
-
long long
PyLong_AsLongLong
(PyObject *obj)¶ - Part of the Stable ABI.
Return a C long long representation of obj. If obj is not an instance of
PyLongObject
, first call its__index__()
method (if present) to convert it to aPyLongObject
.もし obj の値が long long の範囲外であれば、
OverflowError
を送出します。エラーが起きたときに
-1
を返します。 見分けを付けるためにはPyErr_Occurred()
を使ってください。バージョン 3.8 で変更: 可能であれば
__index__()
を使うようになりました。バージョン 3.10 で変更: This function will no longer use
__int__()
.
-
long long
PyLong_AsLongLongAndOverflow
(PyObject *obj, int *overflow)¶ - Part of the Stable ABI.
Return a C long long representation of obj. If obj is not an instance of
PyLongObject
, first call its__index__()
method (if present) to convert it to aPyLongObject
.もし、 obj の値が
LLONG_MAX
より大きいか、LLONG_MIN
より小さければ、 *overflow は、それぞれ1
か-1
に設定され、-1
を返します; さもなければ *overflow は0
に設定されます。もし、ほかの例外が発生した場合は *overflow が0
に設定され-1
を返します。エラーが起きたときに
-1
を返します。 見分けを付けるためにはPyErr_Occurred()
を使ってください。バージョン 3.2 で追加.
バージョン 3.8 で変更: 可能であれば
__index__()
を使うようになりました。バージョン 3.10 で変更: This function will no longer use
__int__()
.
-
Py_ssize_t
PyLong_AsSsize_t
(PyObject *pylong)¶ - Part of the Stable ABI.
pylong を表す C の
Py_ssize_t
を返します。 pylong はPyLongObject
のインスタンスでなければなりません。もし pylong の値が
Py_ssize_t
の範囲外であれば、OverflowError
を送出します。エラーが起きたときに
-1
を返します。 見分けを付けるためにはPyErr_Occurred()
を使ってください。
-
unsigned long
PyLong_AsUnsignedLong
(PyObject *pylong)¶ - Part of the Stable ABI.
pylong を表す C の unsigned long を返します。 pylong は
PyLongObject
のインスタンスでなければなりません。もし pylong の値が unsigned long の範囲外であれば、
OverflowError
を送出します。エラーが起きたときに
(unsigned long)-1
を返します。 見分けを付けるためにはPyErr_Occurred()
を使ってください。
-
size_t
PyLong_AsSize_t
(PyObject *pylong)¶ - Part of the Stable ABI.
pylong を表す C の
size_t
を返します。 pylong はPyLongObject
のインスタンスでなければなりません。もし pylong の値が
size_t
の範囲外であれば、OverflowError
を送出します。エラーが起きたときに
(size_t)-1
を返します。 見分けを付けるためにはPyErr_Occurred()
を使ってください。
-
unsigned long long
PyLong_AsUnsignedLongLong
(PyObject *pylong)¶ - Part of the Stable ABI.
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)¶ - Part of the Stable ABI.
Return a C unsigned long representation of obj. If obj is not an instance of
PyLongObject
, first call its__index__()
method (if present) to convert it to aPyLongObject
.obj の値が unsigned long の範囲から外れていた場合は、
ULONG_MAX + 1
を法とした剰余を返します。エラーが起きたときに
(unsigned long)-1
を返します。 見分けを付けるためにはPyErr_Occurred()
を使ってください。バージョン 3.8 で変更: 可能であれば
__index__()
を使うようになりました。バージョン 3.10 で変更: This function will no longer use
__int__()
.
-
unsigned long long
PyLong_AsUnsignedLongLongMask
(PyObject *obj)¶ - Part of the Stable ABI.
Return a C unsigned long long representation of obj. If obj is not an instance of
PyLongObject
, first call its__index__()
method (if present) to convert it to aPyLongObject
.obj の値が unsigned long long の範囲から外れていた場合は、
ULLONG_MAX + 1
を法とした剰余を返します。エラーが起きたときに
(unsigned long long)-1
を返します。 見分けを付けるためにはPyErr_Occurred()
を使ってください。バージョン 3.8 で変更: 可能であれば
__index__()
を使うようになりました。バージョン 3.10 で変更: This function will no longer use
__int__()
.
-
double
PyLong_AsDouble
(PyObject *pylong)¶ - Part of the Stable ABI.
pylong を表す C の double を返します。 pylong は
PyLongObject
のインスタンスでなければなりません。もし pylong の値が double の範囲外であれば、
OverflowError
を送出します。エラーが起きたときに
-1.0
を返します。 見分けを付けるためにはPyErr_Occurred()
を使ってください。
-
void *
PyLong_AsVoidPtr
(PyObject *pylong)¶ - Part of the Stable ABI.
Python の整数型を指す pylong を、 C の void ポインタに変換します。 pylong を変換できなければ、
OverflowError
を送出します。この関数はPyLong_FromVoidPtr()
で値を生成するときに使うような void ポインタ型を生成できるだけです。エラーが起きたときに
NULL
を返します。 見分けを付けるためにはPyErr_Occurred()
を使ってください。