Ответ 1
Чтобы получить точную помощь, напечатанную help(str)
в переменной strhelp
:
import pydoc
strhelp = pydoc.render_doc(str, "Help on %s")
Конечно, вы можете легко распечатать его без подкачки и т.д.
Можно ли распечатать вывод справки ('myfun'). Поведение, которое я вижу, это вывод вывода на std.out, а script ожидает ввода пользователя (т.
Должна быть установка, чтобы установить это, чтобы просто выгрузить docstrings.
В качестве альтернативы, если бы я мог просто сбросить docstring PLUS в строку "def f (args):", которая тоже будет прекрасной.
Поиск "функции помощи python" является смешным.:) Может быть, мне не хватает какой-нибудь приятной страницы pydoc где-то там, которая объясняет все это?
Чтобы получить точную помощь, напечатанную help(str)
в переменной strhelp
:
import pydoc
strhelp = pydoc.render_doc(str, "Help on %s")
Конечно, вы можете легко распечатать его без подкачки и т.д.
Если вы хотите получить доступ к необработанной строке документации из кода:
myvar = obj.__doc__
print(obj.__doc__)
Функция справки выполняет некоторую дополнительную обработку, принятый ответ показывает, как повторить это с помощью pydoc.render_doc().
Вы уже видели ссылку на docstring, волшебную переменную __doc__
, которая содержит тело справки:
def foo(a,b,c):
''' DOES NOTHING!!!! '''
pass
print foo.__doc__ # DOES NOTHING!!!!
Чтобы получить имя функции, просто используйте __name__
:
def foo(a,b,c): pass
print foo.__name__ # foo
Способ получения подписи функции, которая не встроена в вас, может использовать свойство func_code и из нее вы можете прочитать ее co_varnames:
def foo(a,b,c): pass
print foo.func_code.co_varnames # ('a', 'b', 'c')
Я не узнал, как сделать то же самое для встроенных функций.
>>> x = 2
>>> x.__doc__
'int(x[, base]) -> integer\n\nConvert a string or number to an integer, if possi
ble. A floating point\nargument will be truncated towards zero (this does not i
nclude a string\nrepresentation of a floating point number!) When converting a
string, use\nthe optional base. It is an error to supply a base when converting
a\nnon-string. If the argument is outside the integer range a long object\nwill
be returned instead.'
Это то, что вам нужно?
edit - вы можете print(x.__doc__)
и относительно сигнатуры функции, вы можете построить его с помощью модуля inspect
.
>>> inspect.formatargspec(inspect.getargspec(os.path.join))
'((a,), p, None, None)'
>>> help(os.path.join)
Help on function join in module ntpath:
join(a, *p)
Join two or more pathname components, inserting "\" as needed