使用boost .Python将boost::gregorian::date暴露给Python



我想使用boost .Python使boost::gregorian::date对Python可用。但是,当Boost日期类上不可用时,我如何创建一个体面的__str__函数?我想这样写:

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__", ???)
    ;
}

经过一番研究,我找到了答案。您也可以为.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)
    ;
}

相关内容

  • 没有找到相关文章

最新更新