我正在尝试围绕 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 方法?