这个函数常用于将已经持有引用计数的原始 Python 对象转换为 Pybind11 的 object 类型, 方便我们使用 pybind11 提供的一系列简单易用的接口。...用于管理 C++ 对象的分配, 构造以及释放 - root_class 和 sub_class: 这两者都是在上面的 pybind11::class_ 构造时处理的, 区别是存在父类的情况, 子类的...的时候, 调用的是construct_or_initialize>(), 这里面其实最终是根据类是否可构造调用的不同版本的 new 实现: 位于 init.h 中:
template..., 再调用对象的构造函数, 只是中间有部分代码跟 Python源码相关, 理解起来会复杂一些, 相关的自定义方法代码的实现这里也直接给出: pybind11_object_new() - 位于 class.h...我们需要如前面构造函数注册提到的那样, 利用类型上注册的名为 __init__ 的函数, 来完成对象的构造.
[!