2

我写了一些 Python 代码,在使用“python”时效果很好。然后我使用“Cython”将其转换为 C,并使用 distutils 将其编译为共享库。然后我将一些代码更改为 Cython,以便它运行得更快。但是当我导入 .so 模块并尝试使用我“cdef”编辑的命令时,它说该命令不存在。原始代码:

import time as t
def time(function):
    t1 = t.time()
    function()
    t2 = t.time()
    return t2 - t1

新代码:

import time as t
cdef time(function):
    t1 = t.time()
    function()
    t2 = t.time()
    return t2 - t1

我尝试使用“cdef int time”,但得到了相同的结果。有什么建议吗?

4

1 回答 1

2

cdef函数不会暴露给 Python。cpdef提供用于为 Cython 中定义的 C 函数提供 Python 包装器。

此外,您可能最好使用timeit而不是为实现它而烦恼。

于 2010-04-16T15:08:00.357 回答