我正在编写一个Python类,并希望使用Cython提前类型声明来加速执行。
当我尝试对以下内容进行Cython编译时,出现了"C变量声明语法错误"
的错误:
import numpy as np
cimport numpy as np
class MyClass:
def __init__( self, np.ndarray[double, ndim=1] Redges ):
self.Redges = Redges
cdef double self.var1
错误涉及最后一行涉及self.var1
的语法。我不能直接输入类属性吗?我总是需要将其拆分为两个步骤吗,例如,
cdef double var1
self.var1 = var1
完整的错误回溯如下:
test.pyx:7:24:
Syntax error in C variable declaration
Traceback (most recent call last):
File "setup.py", line 9, in <module>
ext_modules = cythonize('test.pyx'), # accepts a glob pattern
File "/usr/lib/python2.7/dist-packages/Cython/Build/Dependencies.py", line 713, in cythonize
cythonize_one(*args[1:])
File "/usr/lib/python2.7/dist-packages/Cython/Build/Dependencies.py", line 780, in cythonize_one
raise CompileError(None, pyx_file)
Cython.Compiler.Errors.CompileError: calc_iliev_sphere.pyx