我有一个搜索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:&#39; module&#39;对象不可调用
有什么建议吗?
答案 0 :(得分:0)
将return it->second();
更改为return it->second;
解决了这个问题。