6

いくつかの SciPy 関数 ( などscipy.ndimage.interpolation.geometric_transform) は、C 関数へのポインターを引数として取り、入力配列の各ポイントで Python callable を呼び出す必要がないようにすることができます。

手短に :

  • my_functionC モジュールのどこかで呼び出される関数を定義する
  • ポインターと (オプションで)グローバル データを渡すためのポインターを含むPyCObjectを返します。&my_functionvoid*

関連する API メソッドはであり、C での ndimage の拡張PyCObject_FromVoidPtrAndDescを読んで実際の動作を確認できます。

Cython を使用してコードをより管理しやすくすることに非常に興味がありますが、そのようなオブジェクトをどのように正確に作成すればよいかわかりません。何か、まあ、... ポインターはありますか?

4

2 に答える 2

0

それは悪い考えだと思います。Cython は、PyObjects も書くことを避けるために作成されました! さらに、この場合、Cython を介してコードを記述しても、おそらくコードのメンテナンスは改善されません... とにかく、次のようにして PyObject をインポートできます。

from cpython.ref cimport PyObject

あなたのCythonコードで。

アップデート

from cpython cimport *

より安全です。

乾杯、ダビデ

于 2013-05-08T18:56:22.757 に答える