Skip to main content

14. 交互式输入编辑和历史替换

某些版本的Python解释器支持编辑当前输入行和历史替换,类似于在Korn shell和GNU Bash shell中找到的工具。这是使用 GNU Readline 库实现的,它支持各种样式的编辑。这个库有自己的文档,我们不会在这里复制。

14.1. 标签完成和历史记录编辑

在解释器启动时完成变量和模块名称是 自动启用,以便 Tab 键调用完成函数;它查看Python语句名称,当前局部变量和可用的模块名称。对于点表达式(例如 string.a),它将评估表达式直到最终 '.',然后从结果对象的属性建议完成。注意,如果具有 __getattr__() 方法的对象是表达式的一部分,这可以执行应用程序定义的代码。默认配置还将您的历史记录保存到用户目录中名为 .python_history 的文件中。该历史将在下一个互动翻译会议期间再次提供。

14.2. 互动译员的替代品

与早期版本的解释器相比,这个工具是一个巨大的进步;然而,一些希望留下:这将是很好,如果适当的缩进建议在连续行(解析器知道是否需要缩进令牌下一步)。完成机制可能使用解释器的符号表。检查(甚至建议)匹配括号,引号等的命令也将是有用的。

一个替代增强的交互式解释器已经存在了相当长的时间是 IPython,其具有选项卡完成,对象探索和高级历史管理。它也可以彻底定制和嵌入到其他应用程序。另一个类似的增强交互环境是 bpython