Я пишу класс Python на C и хочу добавить утверждения в мой код отладки. assert.h
мне подходит. Это делается только в отладочных компиляциях, поэтому нет вероятности сбоя утверждения, влияющего на пользователя кода Python *.
Я пытаюсь разделить мой «библиотечный» код (который должен быть отделен от кода, связанного с Python), чтобы я мог использовать его из другого C-кода. Поэтому мои методы Python являются тонкими оболочками вокруг моего кода на чистом C.
Так что я не могу сделать это в коде моей библиотеки:
if (black == white)
{
PyErr_SetString(PyExc_RuntimeError, "Remap failed");
}
потому что это загрязняет мой код на чистом C с Python. Это также гораздо страшнее, чем простой
assert(black != white);
Я считаю, что компилятор Distutils всегда устанавливает NDEBUG
, что означает, что я не могу использовать assert.h
даже в отладочных сборках.
Mac OS и Linux.
Помощь!
* один аргумент, который я слышал против утверждения в C-коде, вызванный из Python.