按名称获取对嵌入式python函数的C引用?

2024-04-19 21:52:30 发布

您现在位置:Python中文网/ 问答频道 /正文

假设我有一些包含函数foo的嵌入式python代码,那么获取对该函数的引用(用于PyObject\u CallObject)的最佳方法是什么?你知道吗

一种方法是让一些函数将每个函数与函数名一起注册,可以手动注册,也可以使用反射注册。这看起来太过分了。你知道吗

另一种方法是创建一个“loader”函数,它接受函数名并返回对函数的引用。更好,但是我仍然需要用C注册loader函数

我是否缺少一种更好的方法来完成这一任务,不管是否需要编写任何额外的python代码?你知道吗


Tags: 方法函数代码foo手动loaderpyobjectcallobject
1条回答
网友
1楼 · 发布于 2024-04-19 21:52:30

阅读文档中关于embedding Python的部分。我猜您有一个对包含函数的模块的引用。 最后给出了一个例子,说明了如何从对象中获取函数引用。你知道吗

pFunc = PyObject_GetAttrString(pModule, argv[2]);
/* pFunc is a new reference */

if (pFunc && PyCallable_Check(pFunc)) {
    ...
}
Py_XDECREF(pFunc);

相关问题 更多 >