2013-06-12 3 views
0

Boost.Python을 사용하여 파이썬에서 boost :: gregorian :: date를 사용할 수있게하고 싶습니다. 하지만 부스트 데이트 클래스에서 사용할 수없는 기능을 만들려면 어떻게합니까? __str__? 나는 이것을 다음과 같이 쓰고 싶다 :Boost.Python을 사용하여 boost :: gregorian :: date를 파이썬에 노출하십시오.

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

답변

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) 
    ; 
}