質問

Cythonによって作成されたコードは、生成されたPythonコードと同じくらい常に正しいですか?

他の読者がCythonの静的型宣言や他のCython機能の使用に対処するのに役立つ場合がありますが(もしあれば)、Pythonモジュールを *.pyxに変更することでCythonファイルを作成する場合にのみ興味があります。

私は、Cythonで覆われたPythonのサブセットのみを気にしています。

役に立ちましたか?

解決

一般的に、はい。もちろんあります バグ (サポートされているPythonサブセットの拡大を中心に多くの展開がありますが、実際に生成されたCコードを間違っているバグは比較的まれです)、そしていくつかの必要があります 警告 (ただし、その短いリストの1つの項目のみがPythonセマンティクスから迂回しているようです)。

純粋なPythonモードに静的タイプを追加すると、Cythonとしてコンパイルされているか、Pythonコードとして実行されるかどうかにかかわらず、違いを生む状況があります。署名されていない整数が思い浮かびます(例:上記の1つのリンクに記載されているように、 -n ifをラップします n 署名されていません range(-n, n) したがって、空)と整数のオーバーフロー(Pythonが宣伝する intS(c longs)to longs(分子式整数))。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top