cython を介して Python コードを高速化する必要があります。さらに高速化するために、Python 変数で C 型を自動的に宣言したいと考えています。
これを行うにはa = 1.0
、整数または浮動小数点の python オブジェクトを作成しようとする のような割り当てを見つけ、コードをcdef double a = 1.0
. (「a」は float としてのみ使用されることがわかっています。したがって、Python コードにはいくつかの制限があります。)
割り当てを見つける最初のタスクは、python ast モジュールを使用した簡単なタスクです。しかし、型定義を挿入する方法がわかりません。抽象構文ツリー (ast) を変更することはできますが、cython コンパイラーは変更された ast を読み取ることができないと想定しています。
ここに私の質問があります: 変更された ast から cython コードへの変換を可能にするコード ジェネレーターが必要ですか、それとも (おそらく cython ツールの助けを借りて) 私のタスクのためのより自然な方法がありますか?