我想知道在使用 PyCxx 生成的 python 扩展中定义属性的正确方法是什么。目前我已经Py::PythonClass
在官方示例中创建了一个 as 的子类。我behaviors().supportGetattro();
在初始化函数中添加并创建了一个简单的覆盖
Py::Object getattro( const Py::String &name_ )
{
std::string name( name_.as_std_string( "utf-8" ) );
if( name == "name" )
{
return m_name;
}
else
{
return genericGetAttro( name_ );
}
}
到目前为止,一切都很好。在 python 中,我得到了正确的值obj.name
,但唯一让我不满意的是,调用属性时dir(obj)
没有name
列出。我该如何改变呢?