質問
Cythonによって作成されたコードは、生成されたPythonコードと同じくらい常に正しいですか?
他の読者がCythonの静的型宣言や他のCython機能の使用に対処するのに役立つ場合がありますが(もしあれば)、Pythonモジュールを *.pyxに変更することでCythonファイルを作成する場合にのみ興味があります。
私は、Cythonで覆われたPythonのサブセットのみを気にしています。
解決
一般的に、はい。もちろんあります バグ (サポートされているPythonサブセットの拡大を中心に多くの展開がありますが、実際に生成されたCコードを間違っているバグは比較的まれです)、そしていくつかの必要があります 警告 (ただし、その短いリストの1つの項目のみがPythonセマンティクスから迂回しているようです)。
純粋なPythonモードに静的タイプを追加すると、Cythonとしてコンパイルされているか、Pythonコードとして実行されるかどうかにかかわらず、違いを生む状況があります。署名されていない整数が思い浮かびます(例:上記の1つのリンクに記載されているように、 -n
ifをラップします n
署名されていません range(-n, n)
したがって、空)と整数のオーバーフロー(Pythonが宣伝する int
S(c long
s)to long
s(分子式整数))。
所属していません StackOverflow