【发布时间】:2018-05-16 11:50:22
【问题描述】:
我有一个搜索 std::map 的 boost::python 对象元素的函数。如果映射中存在对象,我需要搜索特定的键值并返回相应的 boost::python 对象,否则我需要返回一个 None 对象。调用者代码有没有办法识别函数返回的对象是否是 None 对象?
下面是搜索功能的代码:
namespace bpy = boost::pythono;
namespace fs = boost::filesystem;
std::map<fs::path, bpy::object> imported_modules;
bpy::object module_exists(fs::path path)
{
auto it = imported_modules.find(path);
if (it != imported_modules.end())
{
return it->second();
}
else
{
return bpy::object();// A None object
}
}
下面是函数的调用方式:
bpy::object mod_cached = module_exists(filepath);
if (!mod_cached.is_none())
{
cout << "Module Found" << endl;
}
但是,当我运行我的程序时出现以下错误:
TypeError: 'module' 对象不可调用
有什么建议吗?
【问题讨论】:
标签: boost boost-python