【发布时间】:2019-07-29 05:11:59
【问题描述】:
我正在使用 pybind11 将 C++ 类方法包装在转换 lambda "shim" 中(我必须这样做是因为原因)。该方法的参数之一在 C++ 中是默认的。
class A
{
void meow(Eigen::Matrix4f optMat = Eigen::Matrix4f::Identity());
};
在我的 pybind 代码中,我想保留这个可选参数:
py::class_<A>(m, "A")
.def(py::init<>())
.def("meow",
[](A& self, Eigen::Matrix4f optMat = Eigen::Matrix4f::Identity())
{
return self.meow( optMat );
});
如何在生成的 Python 代码中使 optMat 成为可选的命名参数?
【问题讨论】:
-
是的,我看过文档,不清楚如何将它们应用于 lambda,因为 lambda 参数是 not 实例化(
py:arg对象)但类型声明。
标签: python c++ pybind11 default-arguments