【问题标题】:Py_BuildValue: make tuple with bool?Py_BuildValue:用 bool 制作元组?
【发布时间】:2014-01-19 19:06:06
【问题描述】:

我在docs 中看到,我可以使用 int 构建元组值(指定“i”)。我需要用 bool 制作元组,例如(True, 10)。如何使用 bool 制作这样的元组(需要什么说明符)?

【问题讨论】:

    标签: python python-extensions


    【解决方案1】:

    该转换没有预定义的格式字符,但通过将Py_TruePy_False 对象插入到元组中来模拟一个很简单,视情况而定。例如:

    int i = ...;
    bool b = ...;
    PyObject *tuple_with_bool = Py_BuildValue("Oi", b ? Py_True: Py_False, i);
    

    另一种选择是使用PyBool_FromLong 进行转换。在这种情况下,请记住使用 N 格式来说明 PyBool_FromLong 返回新引用:

    PyObject *tuple_with_bool = Py_BuildValue("Ni", PyBool_FromLong(b), i);
    

    【讨论】:

    • 奇怪的昵称,但有帮助。谢了。
    猜你喜欢
    • 2016-07-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-16
    • 1970-01-01
    • 2010-12-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多