ここ数日、Python のソース コードをざっと読んでいて、わからないことがありました。「abstract.c」ファイルで、以下のコード スニペットを見つけました。それがどのように機能するかを理解したつもりでしたが、 と がどこから来たのか見当がつかないことに気付きまし*v
た*w
。誰かがこのコードで何が起こっているのかを説明し、それをどのように使用するかの例を教えてください。
#define BINARY_FUNC(func, op, op_name) \
PyObject * \
func(PyObject *v, PyObject *w) { \
return binary_op(v, w, NB_SLOT(op), op_name); \
}
BINARY_FUNC(PyNumber_Or, nb_or, "|")
BINARY_FUNC(PyNumber_Xor, nb_xor, "^")
BINARY_FUNC(PyNumber_And, nb_and, "&")
BINARY_FUNC(PyNumber_Lshift, nb_lshift, "<<")
BINARY_FUNC(PyNumber_Rshift, nb_rshift, ">>")
BINARY_FUNC(PyNumber_Subtract, nb_subtract, "-")
BINARY_FUNC(PyNumber_Divmod, nb_divmod, "divmod()")