3

多くの組み込みライブラリは、可能な限り C 実装を使用します。

たとえば、heapq利用lib-dynload/_heapq.so可能な場合に使用します。

のようなモジュールのソース コードはどこにあります_heapqか?

4

2 に答える 2

2

3.3 リリースの多くの C モジュールのコード:
http://hg.python.org/cpython/file/3.3/Modules

heapq ソースへの直接リンク:
http://hg.python.org/cpython/file/3.3/Modules/_heapqmodule.c

于 2012-12-18T01:10:40.810 に答える
2

CPython の任意のバージョンのコードを表示するには、次の場所に移動します。

古いバージョンの場合は何でも、3.3 を 3.2、2.3 に置き換えます。探しているものがわかっている場合は、major.minor バージョンの代わりに hg リビジョン番号を明示的に指定することもできます。

C モジュールはほとんどがModulesサブディレクトリ内にあり、それぞれのモジュールは一般にfoo.cまたはという名前foomodule.cですが、Python ライブラリはLibという名前のサブディレクトリにありfoo.pyます。

の場合heapq、実際のheapqモジュールは Python ( ) にありますが、 ( )Lib/heapq.pyという名前の C モジュールを使用しています。_heapqModules/_heapqmodule.c

もちろんソースもダウンロードできます。http://python.orgのフロント ページには、最新の 2.x および 3.x バージョンの「ソース配布」の「クイック リンク」があります。または、他のすべてのリリースの「ダウンロード」をクリックできます。ご想像のとおり、構造はhttp://hg.python.orgで見られるものと同じです。

于 2012-12-18T01:23:16.533 に答える