【发布时间】:2014-07-15 10:27:13
【问题描述】:
我已在此链接中阅读:https://github.com/cython/cython/wiki/FAQ#id35 我的 Cython 0.20.1 应该能够支持 const。
但是我的以下代码无法编译:
cdef const double a = 2.5
print(a)
在编译期间它说
test.pyx:5:5: Assignment to const 'a'
Traceback (most recent call last):
File "setup1.py", line 11, in <module>
ext_modules = cythonize(extensions)
File "X:\WinPython3\python-3.3.5.amd64\lib\site-packages\Cython\Build\Dependencies.py", line 785, in cythonize
cythonize_one(*args[1:])
File "X:\WinPython3\python-3.3.5.amd64\lib\site-packages\Cython\Build\Dependencies.py", line 902, in cythonize_one
raise CompileError(None, pyx_file)
Cython.Compiler.Errors.CompileError: test.pyx
【问题讨论】:
-
我认为
cdef enum是您在 cython 中声明 const 的方式,但枚举是整数,所以我想它在您的情况下不起作用。 -
@PadraicCunningham 谢谢 - 解决了我的问题!
-
不客气。我认为您可以使用
DEF声明一个 const 但它是无符号的。虽然我认为它适用于你的情况。 -
@PadraicCunningham:我认为它是一种文字替换,就像 C 预处理器一样。所以不管是什么类型。