【问题标题】:Python Idle help pagerPython空闲帮助寻呼机
【发布时间】:2018-10-05 05:45:02
【问题描述】:

在 Python Idle shell 中,help() 命令的输出不会被分页。有什么方法可以实现吗?

作为一种解决方法,我尝试使用pydoc.pager(),但没有成功。以下在从终端启动的普通 Python shell 中有效,但在 Python Idle shell 中无效。

import pydoc

def ihelp(thing):
    '''Render text documentation, given an object or a path to an object, and
    sends the resulting text to a pager.'''

    pydoc.pager(pydoc.render_doc(thing))

编辑:只是为了避免误解。 ihelp() 函数在终端 Python shell 和 IDLE shell 中获取帮助文本。分页仅在终端 shell 中有效。

【问题讨论】:

    标签: python python-idle


    【解决方案1】:

    您的代码用于提供帮助输出,但不能用于分页。寻呼机在用户代码运行进程中执行,并且不知道如何在单独的 gui 进程中与 IDLE shell 交互。我不相信你可以改变这一点。

    为了解决这个问题,IDLE 有一个新功能,从 3.6.7 和 3.7.1 开始(候选版本现已推出,最终版本将在一周左右发布)。 IDLE 将“长”输出压缩到一个按钮。 (默认情况下,'long' 为 50 行,但用户可以修改它。短的输出可以通过右键单击它来压缩。)

    >>> help(int)
    [ Squeezed text (241 lines) ]  # <== tkinter button
    >>> 
    

    您可以通过双击将文本展开到位,或者通过右键单击将其展开到剪贴板或单独的非模态视图窗口中。一个单独的窗口允许在帮助条目中上下滚动或翻页,同时在 Shell 中编写语句。

    【讨论】:

    • 是的,我的 ihelp() 函数在终端 shell 和 IDLE shell 中都提供帮助输出。我已经编辑了我的问题以使其更清楚。
    • 中的新功能看起来很不错。我去看看。
    猜你喜欢
    • 2011-06-04
    • 1970-01-01
    • 1970-01-01
    • 2011-03-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-18
    相关资源
    最近更新 更多