【发布时间】:2021-02-23 13:57:27
【问题描述】:
我有一个 cdef 函数返回一个 (int, int) 元组。我需要传播异常,因此必须指定异常的返回类型。由于我的函数从不返回负值,这可能是例如是(-1, -1)。使用documentation 中指定的标准语法,我的函数看起来像
cdef (int, int) myFunction(int arg) except (-1, -1):
...
但是,当对上述函数进行 cythonizing 时,我得到了错误
Not allowed in a constant expression
我知道我可以在每次函数调用后打开查找异常
cdef (int, int) myFunction(int arg) except *:
...
但这对我来说似乎效率低下。
如何为具有多个返回值的函数传播异常?
【问题讨论】:
标签: python exception cython cythonize