Разница между pydoc и help ()? - PullRequest
1 голос
/ 05 июля 2011

Эти две вещи разные? Результаты, которые оба дают в Python, похожи.

Ответы [ 3 ]

3 голосов
/ 05 июля 2011

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')"

2 голосов
/ 19 января 2012

Интерактивная функция 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))
0 голосов
/ 26 августа 2018

Говоря простыми словами, pydocs можно объяснить как Tesla, Inc. и help - это просто продукт Tesla, подобный Tesla Model S

Если кто-то входит в код функции help, ясно упоминается, что помощь использует pydocs.help

"""
Define the built-in 'help'.
    This is a wrapper around pydoc.help (with a twist).
"""

pydocs имеет гораздо больше опций и возможностей по сравнению с help

...