如何从 C-API 按名称调用 python 函数?

发布于 2024-11-18 08:18:19 字数 236 浏览 1 评论 0原文

从 c-api 中,我想按名称调用 python 函数。然后我将使用 python 对象列表作为参数来调用该函数。

在 Python 文档中,我不清楚如何从主 python 解释器获取“Callable”对象。

任何帮助都值得赞赏:

  1. 从函数获取地址
  2. 使用我的PythonObject作为参数调用函数。

我正在使用 Python 2.x 系列进行开发。

From the c-api, I would like to call a python function by name. I would then be calling the function with a list of python objects as arguments.

It is not clear to me in the Python documentation how I would get a "Callable" object from the main python interpreter.

Any help appreciated in:

  1. Getting the address from the function
  2. Calling the function with my PythonObject's as arguments.

I'm using Python 2.x series for my development.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

终陌 2024-11-25 08:18:19

基本上,您使用 Python C API 获取该函数所在的模块,然后查询该函数的模块字典。这或多或少与 Python 代码从某处调用函数时 Python 运行时在内部执行的操作相同。

API 中需要查看的相关函数有 PyImport_ImportModulePyModule_GetDictPyDict_GetItemPyObject_CallXXX 系列函数。

Basically, you use the Python C API to get the module the function is contained in, then query the module dictionary for the function. That's more or less the same what the Python runtime does internally when your Python code invokes a function from somewhere.

Relevant functions from the API to look at are PyImport_ImportModule, PyModule_GetDict, PyDict_GetItem and the PyObject_CallXXX family of functions.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文