0

PyCxx で生成された Python 拡張機能で属性を定義する適切な方法は何でしょうか。Py::PythonClass現在、公式ののようにサブクラスを作成しています。初期化関数を追加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

4

1 に答える 1