【发布时间】:2018-12-31 00:55:02
【问题描述】:
我正在使用 Swig 从 C 源代码创建一个 python 库。 有一个函数接收指向 C 中函数的指针。我需要从 Python 调用它,但回调函数必须在 Python 中。 我见过的所有文档都使用 C 中的回调函数。
例子:
typedef double (*FeeCalculator)(Transaction* p);
void dealTransaction(Transaction* t, FeeCalculator feeCalculator);
我希望该函数在 Python 中可用。比如:
def myFeeCalculator(tran):
return trans.Sum * 0.1
def main():
t = Transaction()
dealTransaction(t, myFeeCalculator)
【问题讨论】:
-
你能提供一个minimal reproducible example吗?
-
谢谢,我加了一个例子。
-
即使大部分代码是用 C 编写的,您是否只能为 Python 包装器编写一些 C++?只需一点点 C++ 就可以大大简化胶水