【问题标题】:How to check for a None object in boost python如何在 boost python 中检查 None 对象
【发布时间】:2018-05-16 11:50:22
【问题描述】:

我有一个搜索 std::mapboost::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


    【解决方案1】:

    return it-&gt;second(); 更改为return it-&gt;second; 解决了这个问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-12-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-17
      • 2015-09-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多