2016-09-24 2 views
3

Я хочу сделать что-то подобное в интерпретаторе python.назначить вывод справки переменной вместо stdout в python

myhelp = help(myclass) 

но выход идет в стандартный вывод. Можно ли присвоить его переменной?

Спасибо!

+1

Использование '' pydoc' ... импорт pydoc; myhelp = pydoc.render_doc (myclass) ' – AChampion

+0

@AChampion Я, похоже, не могу найти вопрос, связанный с этим, возможно, было бы хорошо опубликовать ваш комментарий в качестве ответа, поскольку это довольно хороший краткий способ фактического хранения справки данные. Для всех, кто хочет это сделать, было бы полезно в качестве ответа. – idjaw

ответ

4

Вы можете захватить стандартный вывод, а help(myclass) работает:

from cStringIO import StringIO 
import sys 

stdout = sys.stdout 
buffer = StringIO() 
sys.stdout = buffer 

help(myclass) 

sys.stdout = stdout 

myhelp = buffer.getvalue() 
+2

Просто хотел добавить дружественную поддержку Python 3 для этого. Чтобы использовать 'StringIO', вам нужно импортировать из' io' -> 'из io import StringIO' – idjaw

Смежные вопросы