有没有选项打印help()的输出?
有没有办法直接打印出help('myfun')的输出?我发现的情况是,输出会显示在标准输出上,然后脚本会等待用户输入(也就是说,需要输入'q'才能继续)。
应该有个设置可以让它只显示文档字符串。
另外,如果我能直接显示文档字符串加上"def f(args):"这一行,那也可以。
搜索“python help function”真是让人哭笑不得。:) 也许我错过了某个很棒的pydoc页面,能把这些都解释清楚?
4 个回答
5
你已经看到过文档字符串的相关内容,它是一个神奇的变量 __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')
不过,我还没有找到如何对内置函数做同样的事情。
7
如果你想从代码中获取原始的文档字符串:
myvar = obj.__doc__
print(obj.__doc__)
help函数会做一些额外的处理,接受的答案展示了如何用pydoc.render_doc()来实现这个功能。
26
如果你想把 help(str)
打印出来的帮助信息放到一个叫 strhelp
的变量里,可以这样做:
import pydoc
strhelp = pydoc.render_doc(str, "Help on %s")
这样你就可以很方便地打印出来,不用分页什么的。