【发布时间】:2012-12-30 04:39:40
【问题描述】:
我正在尝试围绕 libedit(一个 BSD 替代 readline 的 API 略有不同)编写一个包装器,并且有一种方法可以将命名函数添加到 C API。
例如在 C 中:
static unsigned char show_help(EditLine *e, int ch) {
printf("Help");
}
el = el_init(argv[0], stdin, stdout, stderr);
el_set(el, EL_ADDFN, "help", "This is help", show_help);
el_set(el, EL_BIND, "\?", "help", NULL);
我调用 el_set 添加一个函数,然后绑定该函数。
我找不到允许我包装 EL_ADDFN 以动态绑定 Python 方法的好方法。我可以创建一堆预先命名的 C 函数并将它们单独包装到 python 方法中,但我希望尽可能地模拟 C API。
有没有办法调用 EL_ADDFN 并确定它正在调用哪个 python 方法?
【问题讨论】:
标签: python python-c-api cpython