我正在寻找合并一些cython来加快我的代码的速度。
我在Jupyter中运行cython代码时遇到问题。
单元格1:
%%cython
cdef fuc():
cdef int a = 0
for i in range(10):
a += i
print(a)
单元格2:
fuc()
错误:
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
<ipython-input-48-10789e9d47b8> in <module>()
----> 1 fuc()
NameError: name 'fuc' is not defined
但是,如果我这样做,它会很好。
%%cython
def fuc():
cdef int a = 0
for i in range(10):
a += i
print(a)
看起来cdef在Jupyter中使用的方式有所不同,如何在Jupyter Notebook中使用cdef?
最佳答案
cdef
functions can only be called from Cython, not Python。该文件说
(已经声明“C函数”由cdef
定义,“Python函数”由def
定义。)
请在Cython中使用def
函数。它仍然由Cython编译。您仍然可以在cdef
函数中使用def
类型。