gpt4 book ai didi

python - 如何获取对 C api 函数的 python 调用者的引用

转载 作者:太空宇宙 更新时间:2023-11-04 00:05:53 25 4
gpt4 key购买 nike

我在 https://docs.python.org/3/extending/embedding.html 之后实现了一个嵌入式 python 解释器

我有一种方法可以轻松地为我的 C 程序创建我自己的 API,以便用户可以从 Python 脚本调用我自己的内部 C 函数。

一切正常,但我想知道函数是从哪个脚本调用的。根据手册,每个函数都必须具有这些参数:

static PyObject *SomeApiFunction(PyObject *self, PyObject *args)

但是手册没有解释什么是 self 所以我假设 self 是对调用函数的模块的引用,这可能是错误的。我尝试对自己调用 PyModule_GetName,它返回了我在初始化期间设置的应用程序的内部名称(使用 PyModule_Create)。

有没有办法识别哪个模块调用了我的 C 函数?

最佳答案

如果您在 Python 中执行此操作,则可以使用以下行:

module_path = sys._getframe(1).f_code.co_filename

您也许可以在 C API 中执行类似的操作,但我从未使用过它。

关于python - 如何获取对 C api 函数的 python 调用者的引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24388794/

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