1. ホーム
  2. python

[解決済み] Pythonは関数定義を表示できますか?

2022-06-11 02:08:06

質問

JavaScriptでは、関数の定義をプリントアウトすることができます。 Pythonでこれを実現する方法はありますか?

(ちょうどインタラクティブモードで遊んでいて、open()なしでモジュールを読みたかったのです。 私はちょうど好奇心がありました)。

どのように解決するのですか?

関数をインポートしている場合は inspect.getsource :

>>> import re
>>> import inspect
>>> print inspect.getsource(re.compile)
def compile(pattern, flags=0):
    "Compile a regular expression pattern, returning a pattern object."
    return _compile(pattern, flags)

これは は対話型プロンプトで動作しますが、明らかにインポートされたオブジェクトに対してのみ動作します (対話型プロンプト内で定義されたオブジェクトではありません)。そしてもちろん、Python がソースコードを見つけることができる場合にのみ動作します (したがって、組み込みオブジェクト、C libs、.pyc ファイルなどでは動作しません)。