2017-05-23 1 views
0

cdefの代わりに(defの代わりにcdef)をキーワード引数で定義することは可能ですか?Cythonの(C呼び出し可能な)cdefメソッドでオプションの(キーワード)引数を使用する

cdef double function(x, **kwargs): 
    if "factor" in kwargs: 
     x = x * kwargs["factor"] 
    return x*2 

私は二つの部分に機能を分割することができ知っている:CDEF関数を呼び出している**kwargsで1つのデフ。 現在、私はPythonとCythonの同じソースコードをいくつかの追加のpyorcy行で作成しようとしています。

答えて

1

番号cdef関数はCスタイルの関数シグネチャを生成し、その中にキーワード引数を表す実際の方法はありません。あなたがcdef機能が欲しいのはなぜ

cdef double function(x, kwargs): 
    # the rest as before 

あなたは機能を使用すると、効果的にキーワード引数を扱う辞書を受け入れませんでしたか? def関数はCython内で定義されていてもコンパイルされており、同じことのほとんどを行うことができますcdef関数はできるので、あなたの関数を作る理由はほとんどありませんcdef

+0

私はそれがより速くなると思った。ベンチマークテストの後、私はそれが分からないと考えました。とにかくありがとう – Daniel

関連する問題