番号プロトコル
- int PyNumber_Check(PyObject *o)
- オブジェクト o が数値プロトコルを提供する場合は
1
を返し、それ以外の場合はfalseを返します。 この関数は常に成功します。
- o1 と o2 を加算した結果、または失敗した場合は NULL を加算した結果を返します。 これは、Python式
o1 + o2
と同等です。
- o1 から o2 を引いた結果、または失敗した場合は NULL を返します。 これは、Python式
o1 - o2
と同等です。
- o1 と o2 を乗算した結果、または失敗した場合は NULL を返します。 これは、Python式
o1 * o2
と同等です。
- o1 を o2 で除算した結果、または失敗した場合は NULL を返します。 これは、Python式
o1 / o2
と同等です。
- PyObject *PyNumber_FloorDivide(PyObject *o1, PyObject *o2)
o1 のフロアを o2 で割った値、または失敗した場合は NULL を返します。 これは、整数の「古典的な」除算に相当します。
バージョン2.2の新機能。
- PyObject *PyNumber_TrueDivide(PyObject *o1, PyObject *o2)
o1 を o2 で割った値、または失敗した場合は NULL の妥当な近似値を返します。 2進浮動小数点数は概算であるため、戻り値は「概算」です。 基数2ですべての実数を表すことはできません。 この関数は、2つの整数が渡されると、浮動小数点値を返すことができます。
バージョン2.2の新機能。
- o1 を o2 で除算した余り、または失敗した場合は NULL を返します。 これは、Python式
o1 % o2
と同等です。
- 組み込み関数 divmod()を参照してください。 失敗すると NULL を返します。 これは、Python式
divmod(o1, o2)
と同等です。
- 組み込み関数 pow()を参照してください。 失敗すると NULL を返します。 これは、Python式
pow(o1, o2, o3)
と同等です。ここで、 o3 はオプションです。 o3 を無視する場合は、代わりに Py_None を渡します( o3 に NULL を渡すと、不正なメモリアクセスが発生します)。
- 成功した場合は o の否定を返し、失敗した場合は NULL の否定を返します。 これは、Python式
-o
と同等です。
- 成功した場合は o を返し、失敗した場合は NULL を返します。 これは、Python式
+o
と同等です。
- 失敗した場合は、 o または NULL の絶対値を返します。 これは、Python式
abs(o)
と同等です。
- 成功した場合は o のビット単位の否定を返し、失敗した場合は NULL を返します。 これは、Python式
~o
と同等です。
- 成功した場合は o1 を o2 、失敗した場合は NULL だけ左シフトした結果を返します。 これは、Python式
o1 << o2
と同等です。
- 成功した場合は o1 を o2 で右シフトした結果を返し、失敗した場合は NULL を返します。 これは、Python式
o1 >> o2
と同等です。
- 成功した場合は o1 と o2 の「ビット単位のand」を返し、失敗した場合は NULL を返します。 これは、Python式
o1 & o2
と同等です。
- 成功した場合は o2 による o1 の「ビット単位の排他的論理和」を返します。失敗した場合は NULL を返します。 これは、Python式
o1 ^ o2
と同等です。
- 成功した場合は o1 と o2 の「ビット単位のor」を返し、失敗した場合は NULL を返します。 これは、Python式
o1 | o2
と同等です。
- o1 と o2 を加算した結果、または失敗した場合は NULL を加算した結果を返します。 o1 がサポートしている場合、操作はインプレースで実行されます。 これは、Pythonステートメント
o1 += o2
と同等です。
- o1 から o2 を引いた結果、または失敗した場合は NULL を返します。 o1 がサポートしている場合、操作はインプレースで実行されます。 これは、Pythonステートメント
o1 -= o2
と同等です。
- o1 と o2 を乗算した結果、または失敗した場合は NULL を返します。 o1 がサポートしている場合、操作はインプレースで実行されます。 これは、Pythonステートメント
o1 *= o2
と同等です。
- o1 を o2 で除算した結果、または失敗した場合は NULL を返します。 o1 がサポートしている場合、操作はインプレースで実行されます。 これは、Pythonステートメント
o1 /= o2
と同等です。
- PyObject *PyNumber_InPlaceFloorDivide(PyObject *o1, PyObject *o2)
o1 を o2 で除算する、または失敗した場合は NULL を除算する数学的フロアを返します。 o1 がサポートしている場合、操作はインプレースで実行されます。 これは、Pythonステートメント
o1 //= o2
と同等です。バージョン2.2の新機能。
- PyObject *PyNumber_InPlaceTrueDivide(PyObject *o1, PyObject *o2)
o1 を o2 で割った値、または失敗した場合は NULL の妥当な近似値を返します。 2進浮動小数点数は概算であるため、戻り値は「概算」です。 基数2ですべての実数を表すことはできません。 この関数は、2つの整数が渡されると、浮動小数点値を返すことができます。 o1 がサポートしている場合、操作はインプレースで実行されます。
バージョン2.2の新機能。
- o1 を o2 で除算した余り、または失敗した場合は NULL を返します。 o1 がサポートしている場合、操作はインプレースで実行されます。 これは、Pythonステートメント
o1 %= o2
と同等です。
- 組み込み関数 pow()を参照してください。 失敗すると NULL を返します。 o1 がサポートしている場合、操作はインプレースで実行されます。 これは、o3が Py_None の場合のPythonステートメント
o1 **= o2
と同等であり、それ以外の場合はpow(o1, o2, o3)
のインプレースバリアントです。 o3 を無視する場合は、代わりに Py_None を渡します( o3 に NULL を渡すと、不正なメモリアクセスが発生します)。
- 成功した場合は o1 を o2 、失敗した場合は NULL だけ左シフトした結果を返します。 o1 がサポートしている場合、操作はインプレースで実行されます。 これは、Pythonステートメント
o1 <<= o2
と同等です。
- 成功した場合は o1 を o2 で右シフトした結果を返し、失敗した場合は NULL を返します。 o1 がサポートしている場合、操作はインプレースで実行されます。 これは、Pythonステートメント
o1 >>= o2
と同等です。
- 成功した場合は o1 と o2 の「ビット単位のand」を返し、失敗した場合は NULL を返します。 o1 がサポートしている場合、操作はインプレースで実行されます。 これは、Pythonステートメント
o1 &= o2
と同等です。
- 成功した場合は o2 による o1 の「ビット単位の排他的論理和」を返します。失敗した場合は NULL を返します。 o1 がサポートしている場合、操作はインプレースで実行されます。 これは、Pythonステートメント
o1 ^= o2
と同等です。
- 成功した場合は o1 と o2 の「ビット単位のor」を返し、失敗した場合は NULL を返します。 o1 がサポートしている場合、操作はインプレースで実行されます。 これは、Pythonステートメント
o1 |= o2
と同等です。
- この関数は、タイプ
PyObject*
の2つの変数のアドレスを取ります。*p1
と*p2
が指すオブジェクトのタイプが同じである場合は、参照カウントを増やして0
を返します(成功)。 オブジェクトを共通の数値型に変換できる場合は、*p1
と*p2
を変換された値(「新しい」参照カウント)に置き換えて、0
を返します。 変換が不可能な場合、またはその他のエラーが発生した場合は、-1
(失敗)を返し、参照カウントをインクリメントしないでください。PyNumber_Coerce(&o1, &o2)
の呼び出しは、Pythonステートメントo1, o2 = coerce(o1, o2)
と同等です。
- この関数は PyNumber_Coerce()に似ていますが、変換が不可能でエラーが発生しない場合に
1
を返す点が異なります。 この場合、参照カウントはまだ増加していません。
- 成功した場合は整数オブジェクトに変換された o を返し、失敗した場合は NULL を返します。 引数が整数の範囲外の場合は、代わりに長いオブジェクトが返されます。 これは、Python式
int(o)
と同等です。
- 成功した場合は長整数オブジェクトに変換された o を返し、失敗した場合は NULL を返します。 これは、Python式
long(o)
と同等です。
- 成功した場合はfloatオブジェクトに変換された o を返し、失敗した場合は NULL を返します。 これは、Python式
float(o)
と同等です。
- PyObject *PyNumber_Index(PyObject *o)
成功した場合はPythonintまたはlongに変換された o を返し、失敗した場合は
TypeError
例外が発生した NULL を返します。バージョン2.5の新機能。
- PyObject *PyNumber_ToBase(PyObject *n, int base)
base に変換された整数 n を、
'0b'
、'0o'
、または'0x'
のベースマーカーを持つ文字列として返します。 。 base が2、8、10、または16でない場合、形式は'x#num'
です。ここで、xはベースです。 n がintオブジェクトでない場合は、最初に PyNumber_Index()で変換されます。バージョン2.6の新機能。
- Py_ssize_t PyNumber_AsSsize_t(PyObject *o, PyObject *exc)
o が整数として解釈できる場合、Py_ssize_t値に変換された o を返します。 o をPythonintまたはlongに変換できるが、Py_ssize_t値に変換しようとすると、
OverflowError
が発生する場合、 exc 引数は次のタイプです。発生する例外(通常はIndexError
またはOverflowError
)。 exc が NULL の場合、例外はクリアされ、値は負の整数の場合は PY_SSIZE_T_MIN に、正の整数の場合は PY_SSIZE_T_MAX にクリップされます。整数。バージョン2.5の新機能。
- int PyIndex_Check(PyObject *o)
o がインデックス整数(tp_as_number構造体のnb_indexスロットが入力されている)の場合は
1
を返し、それ以外の場合は0
を返します。バージョン2.5の新機能。