如何在pybind11中使用基本(“默认”/“内置”;不需要导入)python方法?
列表,词典和其他一些内容确实已经构建-in兼容性,但我专门针对(打开)的方法不包含在导入中。我知道绕过它的方法是创建一个包含“open”的方法的python文件,然后像任何导入的方法一样调用它,但我更愿意直接在C ++中使用(如果可能的话,使用pybind),否则半失败的目的。
非常感谢任何帮助/建议。
答案 0 :(得分:2)
你错了。首先,内置名称为importable from builtins
module(在Python 3中):
py::object open = py::module::import("builtins").attr("open");
其次,open
也存在于io
模块中,因此您还可以使用与上述行等效的以下行:
py::object open = py::module::import("io").attr("open");
这适用于Python 3,但最后一行也适用于Python 2.7。