可能性の重複:
About python's built in sort() method組み込みのPython関数のソースコードを見つけるには?
機能に建てられたが、Pythonでどのように動作するかを確認する方法はありますか?私はそれらを使用するためにどれだけ意味するものではありませんが、またそれらがどのように構築された、背後にあるコードは...などを列挙またはを何ソートされていますか?
可能性の重複:
About python's built in sort() method組み込みのPython関数のソースコードを見つけるには?
機能に建てられたが、Pythonでどのように動作するかを確認する方法はありますか?私はそれらを使用するためにどれだけ意味するものではありませんが、またそれらがどのように構築された、背後にあるコードは...などを列挙またはを何ソートされていますか?
Pythonはオープンソースなので、source codeを読むことができます。
特定のモジュールまたは機能が実装されているファイルを確認するには、通常、__file__
属性を出力します。または、inspect
モジュールを使用することもできます。inspect
のマニュアルのRetrieving Source Codeのセクションを参照してください。
組み込みのクラスとメソッドでは、inspect.getfile
とinspect.getsource
は、オブジェクトが組み込みであることを示す型エラーを返しますので、これはあまり簡単ではありません。ただし、組み込み型の多くはObjects
sub-directory of the Python source trunkにあります。たとえば、列挙クラスの実装についてはhere、list
タイプの実装についてはhereを参照してください。
は@クリスの答えを補完する料理の答えは、CPythonのは、GitHubのに移動したとMercurialのリポジトリは、もはや更新されません。必要に応じて
git clone https://github.com/python/cpython.git
コードcpython
と呼ばれるサブディレクトリにチェックアウトします - >cd cpython
print()
の定義を探しているとしましょう...egrep --color=always -R 'print' | less -R
Python/bltinmodule.c
- >builtin_print()
を参照してください。
あなたは単にhelp()
コマンドを使用して、組み込み関数とそのコードについてのヘルプを得ることができます。
:あなたはSTR()のコードを見たい場合は 、単に入力 - help(str)
、
>>> help(str)
Help on class str in module __builtin__:
class str(basestring)
| str(object='') -> string
|
| Return a nice string representation of the object.
| If the argument is a string, the return value is the same object.
|
| Method resolution order:
| str
| basestring
| object
|
| Methods defined here:
|
| __add__(...)
| x.__add__(y) <==> x+y
|
| __contains__(...)
| x.__contains__(y) <==> y in x
|
| __eq__(...)
| x.__eq__(y) <==> x==y
|
| __format__(...)
| S.__format__(format_spec) -> string
|
| Return a formatted version of S as described by format_spec.
|
| __ge__(...)
| x.__ge__(y) <==> x>=y
|
| __getattribute__(...)
-- More --
私が掘っていました検索結果として何千もの結果が得られるように、以下のソースを見つけるためには少し。Built-in Functions
とにかく
(それが元だ場所を見つけるために、それらのいずれかを探して幸運がある)、これらすべての機能がbltinmodule.c
関数で定義されているbuiltin_{functionname}
ビルトインソース
で始まる:https://github.com/python/cpython/blob/master/Python/bltinmodule.c
まったく不明なリソースは、Python Developer Guideです。
最近(幾分)GH issueに、あなたが求めている質問に対処するための新しい章が追加されました:CPython Source Code Layout変更が必要な場合は、そのリソースも更新されます。
あなたは 'enumerate'で例を挙げることができますか? – Benjamin
列挙型ビルトインが[ここ](http://hg.python.org/cpython/file/b36cb4602e21/Lib/test/test_enumerate.py)でテストされている方法を見ることができます。 – Makoto
列挙型コードはこちら[http://svn.python.org/view/python/trunk/Objects/enumobject.c?view=markup] –