使用 Boost Python,暴露给 python 的 C++ 函数是否可以根据传入的单个参数的值返回整数或字符串(或其他类型)?
所以在Python中我想这样做:
from my_module import get_property_value
# get an integer property value
i = get_property_value("some_int_property")
# get a string
s = get_property_value("some_string_property")
C++ 伪代码(显然它不会像这样工作,但你明白了)
???? getPropertyValue(const char* propertyName)
{
Property *p = getProperty(propertyName);
switch(p->type)
{
case INTEGER: return p->as_int();
case STRING: return p->as_string();
...
}
}
BOOST_PYTHON_MODULE(my_module)
{
boost::python::def("get_property_value", &getPropertyValue);
}
如果有什么不同,我将 Boost 1.48 与 Python 3.2 一起使用。