如何在 C 中导入 len() 或 help() 等基本函数与 pybind11
我对 pybind11 还很陌生,我试图在我的文件中导入/借用简单的 Python 函数,例如 len() 或 尤其 help()
C++ 代码。
请注意,我不想在 C++ 中使用 pybinds.doc()
因为我想提取传递给 Python 函数的参数的名称和类型。
我已经熟悉:
auto fnc = py::reinterpret_borrow< py::function >(
py::module::import( "sys" ).attr( "path" ).attr( "append" ) );
但我找不到任何关于如何在特定 python 模块之外导入函数的定义。
I'm quite new to pybind11 and I was trying to import/borrow simple Python functions like len()
or especially help()
inside my C++ code.
Note that I don't want to use pybinds.doc()
inside C++ since I want to extract names and types of the parameters passed to Python functions.
I'm already familiar with:
auto fnc = py::reinterpret_borrow< py::function >(
py::module::import( "sys" ).attr( "path" ).attr( "append" ) );
But I can't find any definition of how to import functions outside of specific python modules.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
感谢 @unddoch 提到
buitlins
模块。不幸的是
help()
默认使用sys.stdout
。因此,我转而使用 pydoc.render_doc() 来将其捕获为字符串。我的工作代码如下所示:
Thanks to @unddoch for mentioning the
buitlins
module.Unfortunately
help()
is usingsys.stdout
by default. Therefore I switched to usingpydoc.render_doc()
to catch it as a string.My working code looks like this: