1

この二つは違うものですか?この 2 つが Python で与える結果は似ています。

4

3 に答える 3

3

help()Python関数です。

pydoc同じものへのコマンドラインインターフェイスです。

pydocの機能を詳しく知りたい場合は、pydoc.py(import pydoc; pydoc.__file__)を調べて、cli関数の内容を確認してください。それはいくつかの余分なインポート魔法を行いますが、実際には必要ないと思います-help()同じ種類の方法で評価される文字列を受け入れるので、「foo.py」がある場合は、実行pythonしてhelp('foo')実行すると、レイアウトにわずかな違いがあるだけで、ほぼ同じ結果にimport foo; help(foo)なると思います。おそらく歴史的な理由があります。

要するに、pydoc fooはほぼ等しいpython -c "help('foo')"

于 2011-07-05T16:19:15.960 に答える
2

対話型help関数は pydoc をインポートするだけです。ソースから:

class _Helper(object):                                 
    """Define the builtin 'help'.                      
    This is a wrapper around pydoc.help (with a twist).

    """                                                

    def __repr__(self):                                
        return "Type help() for interactive help, " \  
               "or help(object) for help about object."
    def __call__(self, *args, **kwds):                 
        import pydoc                                   
        return pydoc.help(*args, **kwds)  

__call__定義に注意してください。

help(help);-)でドキュメントを見ることができます

このinspectモジュールを使用して、次に興味があるときに自分でソースをチェックアウトできます。

自分で調査したい場合は、次のようにすると、オブジェクトに対して定義されたモジュールのソース コード定義が返されます。

inspect.getsource(inspect.getmodule(help))
于 2012-01-19T10:20:45.107 に答える