19

help('myfun') の出力を印刷するオプションはありますか。私が見ている動作は、出力が std.out に出力され、スクリプトがユーザー入力を待機することです (つまり、「q」と入力して続行します)。

docstring だけをダンプするように設定する必要があります。

あるいは、docstring と "def f(args):" 行をダンプするだけでも問題ありません。

「python ヘルプ機能」で検索するとコミカルです。:) たぶん、それをすべて説明している素敵なpydocページがどこかにありませんか?

4

4 に答える 4

25

help(str)によって変数に出力されたヘルプを正確に取得するにはstrhelp:

import pydoc
strhelp = pydoc.render_doc(str, "Help on %s")

もちろん、ページングなどなしで簡単に印刷できます。

于 2011-08-19T16:17:13.293 に答える
5

コードから生のdocstringにアクセスする場合:

   myvar = obj.__doc__
   print(obj.__doc__)

ヘルプ関数はいくつかの追加処理を行います。受け入れられた回答は、pydoc.render_doc()を使用してこれを複製する方法を示しています。

于 2011-08-19T15:15:06.560 に答える
5

__doc__ヘルプの本文を保持するマジック変数であるdocstring への参照は既に見ました。

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

組み込み関数に対して同じことを行う方法がわかりません。

于 2011-08-19T15:36:25.093 に答える
2
>>> 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.'

それはあなたが必要としたものですか?

編集-あなたはできる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
于 2011-08-19T15:14:56.403 に答える