gpt4 book ai didi

python - 使用多个函数参数调用 PyObject_CallObject

转载 作者:行者123 更新时间:2023-11-30 01:47:53 28 4
gpt4 key购买 nike

如果我在 Python 中有这样一个函数:

def multiply(a, b)
return a * b

如果我有两个以上的参数,当它给我一个错误时,我该如何调用 PyObject_CallObject?从 C++ 调用函数可能有更好的方法,但我对 Python/C API 还很陌生

最佳答案

来自documentation :

PyObject* PyObject_CallObject(PyObject *callable_object, PyObject *args)

Return value: New reference.

Call a callable Python object callable_object, with arguments given by the tuple args. If no arguments are needed, then args may be NULL. Returns the result of the call on success, or NULL on failure. This is the equivalent of the Python expression callable_object(*args).

换句话说:

  • 您可以通过传递包含参数的单个tuple 将多个参数传递给函数。所以你必须构建一个 tuple 包含 xy (即 (x, y))和然后将元组作为单个参数传递给 PyObject_CallObject(multiply, the_tuple) 这将等效于 multiply(x, y)
  • 代表最普遍的呼唤。最通用的电话是 PyObject_Call它有两个参数:位置参数的元组和关键字参数的字典。
  • 还有 PyObject_CallFunction*类似于 PyObject_CallObject 的函数,但它们避免必须创建元组并允许多个参数。

关于python - 使用多个函数参数调用 PyObject_CallObject,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31029421/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com