2016-07-12 5 views
1

私は、Cで実装されることを正当化する性能重視のメソッドをいくつか持っているPythonクラスを持っていますが、高速である必要もないメソッドもあります。 C言語で書かれる巨大な痛み。CでPythonクラスの一部だけを実装します

C言語でいくつかのコアメソッドが定義されているが、いくつかの便利なメソッドがPythonで定義されている、両方の世界のベストを持つ標準的な方法はありますか?

(理想的には、それは__str__のような特別なメソッドのために働く必要があります。)

例えば、多分私は、継承を使用することができます。それはそれを行う正しい方法ですか?パフォーマンスコストはありますか?

+0

詳しい説明がない限り、完全な答えを出すのは難しいですが、短い答えははい継承が行く方法です。また、あなたはサイモンを考えましたか?プロセスを非常に単純にします。 –

+1

これが可能かどうか確信が持てませんが、メソッドがクラスの他のメソッドやプロパティに直接アクセスする必要がない場合は、Cで実装し、通常のPython関数としてバインドします最適化するメソッドから呼び出すことができます。 – pah

+0

@BiRico Cythonは本当に興味深い提案です。いいえ、以前は聞いていませんでした。 –

答えて

1

Try Cythonそれは本当に両方の言語の最高の機能をブレンドする素晴らしい仕事を行います。もはやコントロールとパフォーマンス、そして効率と開発の容易さを決める必要はありません。

+0

Cython私が行っていることです。 initの間にボクシングを避けるために少しマッサージが必要でしたが、今は私のコードの3分の1にあるCコードと同じパフォーマンスのpython-esqueコードを持っています。私はこれに本当に満足しています。 –

1

Cコードがオブジェクト自体と対話する必要がない場合は、ctypesモジュールを使用してPythonコードからC関数を呼び出すことができます。

あなたのCコードを共有ライブラリまたはDLLに入れて、あなたのメソッドから呼び出してください。

関連する問題