Нет необходимости догадываться, что делает помощь, просто прочитайте источник.
Встроенный help
- это создать в site.py, это экземпляр класса _Helper
. При вызове он просто передает вызов через pydoc.help(...)
источник, для которого вы найдете pydoc.py.
class _Helper(object):
"""Define the built-in '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)
pydoc.help является экземпляром pydoc.Helper
с входом / выходом, установленным на sys.stdin
, sys.stdout
, но (и я подозреваю, что именно здесь у вас возникла проблема) он использует значение stdin / stdout на время импорта pydoc, поэтому последующее их связывание не будет иметь никакого эффекта.
Я предлагаю вам заменить встроенный экземпляр справки своим собственным классом _Helper, который явно создает свежий помощник pydoc с любыми необходимыми файлами.