gpt4 book ai didi

python - 重组文本、文档字符串和 python 交互式 shell

转载 作者:太空狗 更新时间:2023-10-30 01:17:22 24 4
gpt4 key购买 nike

我正在使用 reStructuredText 来记录我的代码,以便通过 epydoc 获得漂亮的离线 HTML 页面。

结果非常好。唯一的缺点是,当我使用 Python 交互式 shell 时,help() 函数不会解析文档字符串中的 reST 元数据,而是按原样显示整个内容。

有没有办法让 help() 对文档字符串进行一些最小的解析?

我不希望呈现斜体字体或超链接,但至少要进行一些最小的清理以提高可读性。

最佳答案

help() 函数被 site 模块添加到内置命名空间,您可以通过创建 sitecustomize.py 对其进行自定义模块在你路径的某个地方(显然它通常保存在站点包中)。

然后在 sitecustomize.py 文件中添加您想要的任何自定义项。

您可以通过几种方式处理:

如果您想更改 help() 函数本身的(明显的)行为,请将帮助函数包装在装饰器中,例如:

def help_wrapper(func):
def inner(*args):
results = func(*args)
return your_cleanup_function_here(results)
help = help_wrapper(help)

我个人更喜欢稍微不同的解决方案,因为无法说明您的清理函数将如何帮助不是用 RestructuredText 编写的输出。

所以我会创建一个包装函数:

def my_help(*args):
return your_cleanup_function_here(help(*args))

这样您仍然可以在需要时访问原始的 help() 函数。

警告:在 sitecustomize.py 中做事时要小心,因为无论您在这里做什么,都可能会影响您的整个解释器 session (以及每个 解释器 session ),这有时会导致意想不到的后果。

关于python - 重组文本、文档字符串和 python 交互式 shell,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4949935/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com