我有 x, y 参数。使用 python C API,如果 y 为 None,如何将 y 默认为 x 的值。
Python 的等价物是:
def scale(x: float, y:Optional[float]=None):
if y is None:
y = x
c_scale_api(x, y)
最佳答案
只需对照 Py_None
检查即可。
static PyObject* scale(PyObject* self, PyObject* args) {
PyObject* input2 = Py_None; // initialize to None
double input1d, input2d;
if (!PyArg_ParseTuple(args, "d|O", &input1d, &input2)) {
return NULL;
}
if (input2 == Py_None)
{
input2d = input1d;
}
else
{
input2d = PyFloat_AsDouble(input2);
}
return PyFloat_FromDouble(input2d);
}
这将返回第二个参数的值供您检查。
关于python - 在 Python C API 中,如果未设置第二个参数,如何默认为第一个参数的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73820465/