0

Boost.Python を使用して、boost::gregorian::date を Python で利用できるようにしたいと思います。__str__しかし、Boost 日付クラスで利用できない場合、適切な関数を作成するにはどうすればよいでしょうか? 次のように書きたいと思います。

BOOST_PYTHON_MODULE(mymodule)
{
    class_<boost::gregorian::date>("Date")
        .add_property("year", &boost::gregorian::date::year)
        .add_property("month", &boost::gregorian::date::month)
        .def("__str__", ???)
    ;
}
4

1 に答える 1

0

いくつかの調査の後、私は答えを見つけました。.def にも静的関数を指定できます。それを与えるだけでto_iso_extended_string、最初の引数としてオブジェクトを取得します。

BOOST_PYTHON_MODULE(mymodule)
{
    class_<boost::gregorian::date>("Date")
        .add_property("year", &boost::gregorian::date::year)
        .add_property("month", &boost::gregorian::date::month)
        .def("__str__", &to_iso_extended_string)
    ;
}
于 2013-06-13T14:20:03.363 に答える