adr*_*ens 5 c++ python pybind11
我正在使用 pybind11 将 C++ 函数公开给 Python 接口。我想包装重载的赋值运算符,但不知道如何。提供的文档和示例并没有真正涵盖它,至少从我所看到的来看是这样。
这是我正在尝试做的事情的简化版本:
class Num{
public:
Num(const double& num) : m_val(num), m_type(Num::Type::e_none){}
Num& operator=(const double& rhs){m_val = rhs;}
private:
double m_val;
};
Run Code Online (Sandbox Code Playgroud)
这是包装:
PYBIND11_MODULE(demo, m){
py::class_<Num>(m, "Num")
.def(py::init<const double&>())
// Overloaded assignment operator binding ?
;
}
Run Code Online (Sandbox Code Playgroud)
我主要关心的是在将 Num 分配给浮点数时保留它的数据类型。例如:
>>> m = Num(4.5)
>>> type(m)
<class 'demo.Num'>
>>> m = 5.5
>>> type(m)
<class 'float'>
Run Code Online (Sandbox Code Playgroud)
这是我第一次使用 C++ 扩展和绑定,因此任何关于我应该做什么的见解都会很棒!
小智 1
.def("assign", &Num::operator=);
Run Code Online (Sandbox Code Playgroud)
请参阅https://github.com/pybind/pybind11/issues/250了解更多详细信息。
| 归档时间: |
|
| 查看次数: |
2811 次 |
| 最近记录: |