idle用户界面——用法笔记:idle | 第一部分 开始 —— 第 3 章: 你是如何运行程序的 |《学习 python:强大的面向对象编程(第 5 版)》| python 技术论坛-江南app体育官方入口

未匹配的标注

idle是免费、易于使用,可移植,且在大多数平台上自动可用的。通常向python初学者推荐它因为它简化了一些启动细节且不需要有系统命令行的经验。然而,和更高级的商业ide比,它有些限制,且对一些人来说似乎比命令行要更笨重一些。为了避开一些常见的陷阱,下面是idle初学者应该牢记的问题列表:

  • 当保存文件时必须明确添加“.py”。在谈论普通文件时就提到过这一点,但它是一个常见的idle绊脚石,特别对windows用户。在保存文件时,idle不会自动给文件名添加 .py 扩展名。当首次保存文件时,得小心地输入 .py 扩展名。如果不输入,虽然可以从idle(和系统命令行)运行文件,但将不能交互地或从其他模块中导入它。

  • 在文本编辑窗口中,通过选择 run->run module 来运行脚本,而不是通过交互式导入和重载。在本章前面,我们看到了通过交互式导入文件来运行它是可能的。然而,这个方法会变得复杂因为它要求在更改文件后手动重载文件。作为对比,在idle中使用 run->run module 目录选项总是运行最近版本的文件,就像使用系统shell命令行运行它一样。如果需要,idle还提示首先保存文件(另一个在idle外的常见错误)。

  • 只需要重载正在被交互地测试的模块。像系统shell命令行,idel的 run->run moduel 目录选项总是运行顶层文件和任何它导入的模块的当前版本。因为这点, run->run module 消除了关于导入的常见困扰。只需要重载那些正在交互式地导入和测试的模块。如果选择使用导入和重载技术而非 run->run module,记住可以使用 alt-p/alt-n 组合键来回调之前的命令。

  • 可以自定义idle。要改变在idle中的文本字体和颜色,在任何idle窗口的options目录中选择 configure option。你还可以自定义组合键动作,缩进设置,自动完成,等等更多;参见 idle的 help 下拉菜单获取更多提示。

  • 当前在idle中没有清屏选项。这似乎是一个常见的需求(可能因为在类似的ide中这个选项都是有的吧),且它最终可能被添加进来。然而,当前还没有办法清除交互式窗口的文本。如果想清除,可以按住enter键不放,或输入一个python循环来打印一系列的空白行(当然没人真的使用后一种方法,但它听起来比按住enter键更有技术含量!)

  • tkinter gui 和多线程程序可能在idle中工作得不是很好。因为idle是一个python/tkinter 程序,如果使用它来运行特定类型的高级的python/tkinter程序,它可能会死机。这在最近版本的idle中(它在一个进程中运行用户代码,另一个中运行idle gui 自身)已经变得不那么常见,但一些程序(特别是那些使用多线程的)仍可能导致gui死机。即使只是在代码中调用 tkinter quit 函数(退出gui程序的普通方式),如果运行在idle中(这里可能只有 destory 会更好)也可能导致程序的gui死机。你的代码可能不会显示这些问题,但作为一个经验法则,使用idle来编辑gui程序,而使用其他选项如点击图标或系统命令行来启动它们总是安全的。当有疑问时,如果代码在idle中失败了,尝试在gui外来测试它。

  • 如果产生了连接问题,尝试在单进程模式中开启idle。这个问题在最近的python中似乎已经消失了,但它仍然影响使用老版本的读者。因为idle需要在它独立的用户和gui进程之前通信,它有时会在特定平台上启动时有问题(特别的在某些window机器上它有时会无法启动,这是因为防火墙软件阻碍了连接)。如果遇到这种连接错误,可以使用命令行来启动idle,强制它运行在单进程模式下而无需用户代码子进程从而避免了通信问题:它的 -n 命令行标记强制了这个模式。比如,在windows上,开启一个命令行提示符窗口,然后在目录 c:\python33\lib\idlelib(如果需要先 cd到那里)运行系统命令行 idle.py -npython -m idlelib.idle -n命令在任何地方都可以用(见附录a的 -m

  • 小心一些idle可用性功能。idle让初学者的学习简单了许多,但它的一些技巧不能在idle gui外被应用。比如,idle在它其交互式命名空间中运行脚本,所以代码中的变量自动出现在idle交互式会话中——不需要总是运行导入命令来访问已经运行过的顶层文件中的名字。这会很方便,但也能导致困惑,因为在idle环境外,名字必须总是从文件中明确导入来使用的。

    当需要代码文件时,idle也会自动切换到那个文件的目录并将其添加到模块导入搜索路径——一个方便的功能,让你可以使用文件和导入模块而无需搜索路径设置,但当在idle外运行文件时,是不能这样使用的。使用这些功能是没问题的,但不要忘记它们是idle的行为,而不是python的。

本文章首发在 江南app体育官方入口 网站上。

上一篇 下一篇
讨论数量: 0



暂无话题~
网站地图