Python C API:如何评估boolean的自定义对象?

时间:2015-09-27 22:02:49

标签: python c api boolean

我在Python C API中发现了一个奇怪的情况。

我有一个自定义python对象,当使用bool内置函数计算它时,他的返回值为False。

如何将一种自定义对象评估为True?

Declaration of the object

当我尝试评估函数(表示函数的自定义对象)时,我注意到了这个问题,如下所示:

if cutomobject: # False! But the object is a valid reference.

The thread module makes this check, and this prevents me of execute thread

1 个答案:

答案 0 :(得分:0)

像往常一样,我还没有理解我的问题

但正确答案在这里:

c.tp_as_mapping

static PyMappingMethods LuaObject_as_mapping = {
#if PY_VERSION_HEX >= 0x02050000
    (lenfunc)LuaObject_length,    /*mp_length*/
#else
(inquiry)LuaObject_length,    /*mp_length*/
#endif
    (binaryfunc)LuaObject_subscript,/*mp_subscript*/
    (objobjargproc)LuaObject_ass_subscript,/*mp_ass_subscript*/
};

```