我正在用 C 编写一个 Python 类,我想在我的调试代码中添加断言。assert.h
很适合我。这只会被放入调试编译中,因此断言失败不会影响 Python 代码的用户*。
我正在尝试划分我的“库”代码(它应该与链接到 Python 的代码分开),以便我可以将它与其他 C 代码一起使用。因此,我的 Python 方法是纯 C 代码的精简包装器。
所以我不能在我的“库”代码中这样做:
if (black == white)
{
PyErr_SetString(PyExc_RuntimeError, "Remap failed");
}
因为这用 Python 污染了我的纯 C 代码。它也比简单的丑得多
assert(black != white);
我相信 Distutils 编译器总是设置,这意味着即使在调试版本中NDEBUG
我也无法使用。assert.h
Mac 操作系统和 Linux。
帮助!
*我听说过一个反对在从 Python 调用的 C 代码中断言的论点。