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に公開されていません。cpdefCythonで定義されたC関数にPythonラッパーを提供するために提供されています。

また、これを実装することを気にするよりも、 timeitを使用する方がおそらく良いでしょう。

于 2010-04-16T15:08:00.357 に答える