我希望在名为cdef
的文件中INFINITY
constant.pxd
常量,以便我可以在其他地方cimport
。假设constant.pxd
我们有:
import numpy as np
cimport numpy as np
from libc cimport math
ctypedef np.float32_t dtype_t
cdef dtype_t INF = math.INFINITY if math.INFINITY != 0. else np.float32('inf')
然而,这不起作用,例如,在另一个.pyx
文件中:
from constant cimport INF
cpdef test():
return INF
哪个收益率:
>> 0.0
我还尝试将INF
直接定义为np.float32('inf')
或np.inf
。然而,它们最终都是零。
但是,我可以在INF = np.float32('inf')
文件中定义.pyx
,而不是在constant.pyx
文件中定义from constant import INF
from constant cimport dtype_t
cdef class A:
cdef dtype_t data
def __cinit__(self, dtype_t data):
self.data = data
# ...
并按预期使用它。我不清楚这是否会导致执行问题,如果我们有,请说:
from constant import INF
a = A(INF)
并且:
user.agents.find_each(&:destroy)