我正在使用reStructuredText来记录我的代码,以便通过epydoc生成漂亮的离线HTML页面。结果非常出色。唯一的缺点是,当我使用Python交互式shell时,help()函数无法解析文档字符串中的reST元数据,而是将整个字符串原样显示。是否有办法让help()对文档字符串进行一些最小的解析?我不希望呈现斜体字体或超链接,但至少进行一些最小的清理以增加可读性。
help()
函数是由site
模块添加到内置命名空间的,您可以通过在路径上创建一个sitecustomize.py
模块来自定义它(显然通常保存在site-packages中)。sitecustomize.py
文件中添加任何自定义内容即可。help()
函数本身的行为,请使用装饰器将其包装起来,例如:def help_wrapper(func):
def inner(*args):
results = func(*args)
return your_cleanup_function_here(results)
help = help_wrapper(help)
def my_help(*args):
return your_cleanup_function_here(help(*args))
如果您需要,通过这种方式,您仍然可以访问原始的help()
函数。
注意:在sitecustomize.py中进行操作时要小心,因为您在此处所做的任何操作都可能会影响您整个解释器会话(以及每个解释器会话),这有时可能会导致意外后果。
help()
。这并不像看起来的那么困难;只需一些 inspect 代码和启动分页器即可。真的不会很难。 - ulidtko