14. 交互式输入行编辑历史回溯

未匹配的标注
本文档最新版为 3.8,旧版本可能放弃维护,推荐阅读最新版!

某些版本的 Python 解释器支持类似于 Korn shell 和 GNU Bash shell 中的当前行编辑和历史回溯功能,该功能是基于 GNU Readline 库实现的。这个库支持各种风格的编辑模式,关于这个库本身就有完善的文档存在,不再在此处复述了。

14.1. 制表符补全和编辑历史回溯

变量和模块名的补全在解释器启动的时候已经 自动启用 了,因此 Tab 键会调用补全函数;它会查找 Python 声明的对象名、当前局部变量名和可用的模块名。对于取成员的表达式,如 string.a ,Python 会求出在上一个 . 之前的表达式的返回对象并从其属性中找到并给出补全建议。需要注意的是:如果返回的对象拥有 __getattr__ 方法,该过程可能会执行应用程序中的代码。默认情况下, Python 会把历史输入记录保存到你的用户目录下一个名为 .python_history 的文件中,这样就可以在你下次再次开始一个交互式解释器会话的时候重新使用之前的历史。

14.2. 其它交互式解释器

与早期的解释器相比,当前的解释器在便利性方面已经有了长足的进步;然而我们仍有一些愿景没有被实现:如果解释器能在新的一行自动加入缩进会更好(解析器应当知道接下来是否需要缩进);补全功能可以使用解释器的符号表;提供一个检查(甚至提示)括号、引号等匹配功能的命令会很有用。

一个可选的增强的交互解释器是 IPython ,它已经存在一段时间了,它的功能有制表符补全、对象成员检测和高级的输入历史管理功能。它也可以被完全定制或者嵌入到其它应用程序中去。还有其它类似的增强的交互环境有 bpython

本文章首发在 LearnKu.com 网站上。

本译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。
上一篇 下一篇
Summer
讨论数量: 0
发起讨论 只看当前版本


暂无话题~