0

Python の文字列関数が Python でどのように実装されているかについてのドキュメントはありますか?

str は組み込みモジュールであり、その関数は C で実装されていることを理解しています。しかし、とにかくそのためのコードはありませんか? Pypyではどうですか?私がこれまでに読んだことによると、彼らは Python 自体に多くの組み込みモジュールを再実装しています。

質問例: 文字列の分割方法はどのように実装されていますか? (私自身の実装を書かずに)

編集: C で記述された実装を探しているわけではありません (これは、Python/CPython のソース コードのデフォルトの実装です)。

4

1 に答える 1

5

これは提起された質問に実際には答えません。コメントするには少し長すぎます。

ソースをざっと調べてみると、PyPyには2つの実装がありますsplit()この高レベルで読み取り可能なバージョンと、rpython自体の実装のように見えるこの低レベルバージョンです。split()

これらの実装はどちらもCPythonのメソッドと同等ではありません(最も明らかに、 CPythonが提供されてsplit()いない特別な場合を処理しません)。ただし、詳細ではなく、使用される基本的なアルゴリズムにのみ関心がある場合は、PyPyの実装がガイドになる可能性があります(一見すると、CPythonとJythonの両方と基本的に同じことをしているように見えます)。sep

ただし、一般的なリソースとして、PyPyのすべての文字列関数の実装がCPythonで使用されるアルゴリズムを反映していると考える理由はありません-結局のところ、PyPyはJITで実行されるPythonの最適化されたバージョンとして意図されています。メソッドの最も合理的な実装が何であるかに大きな影響を与えます(特に文字列関数は、パフォーマンスのボトルネックになることが多く、したがって「最適化された」ランタイムの実装者は最適化するインセンティブを持っています)。

より一般的な質問について考えると、CPython開発者がCですでに維持されている低レベルライブラリの純粋なPython実装の個別のセットを維持するインセンティブはほとんどありません。ミラー実装が古くなるリスクが非常に高いようです。または実際に行われていることに対して不正確であり、Cコードを読まずにPythonの内部動作を理解しようとした人々にとって最終的には有害である可能性があります。

于 2011-11-27T15:43:43.137 に答える