Это называется троичным условным оператором. Его часто просто называют троичным оператором, но быть троичным не обязательно (но на практике обычно) уникально для условного оператора.
РЕДАКТИРОВАТЬ: Что касается того, поддерживает ли Cython (x ? y : z)
, он не основывается на предварительном поиске в Google. Но Python (и теоретически Cython, я думаю? Disclaimer: я не использую Cython) поддерживает тот же результат (выражение if / else) с (y if x else z)
. РЕДАКТИРОВАТЬ 2: Документация Cython, которую я нашел, говорит, что она работает так же, как в обычном Python.