Skip to main content

25.5. 闲

源代码: Lib/idlelib/


IDLE是Python的集成开发和学习环境。

IDLE具有以下功能:

  • 使用 tkinter GUI工具包在100%纯Python中编码

  • 跨平台:在Windows,Unix和Mac OS X上工作大致相同

  • Python shell窗口(交互式解释器),具有代码输入,输出和错误消息的着色

  • 多窗口文本编辑器与多个撤消,Python着色,智能缩进,调用提示,自动完成和其他功能

  • 在任何窗口中搜索,在编辑器窗口中替换,以及搜索多个文件(grep)

  • 具有持久断点,步进和查看全局和局部命名空间的调试器

  • 配置,浏览器和其他对话框

25.5.2. 编辑和导航

在本节中,“C”指的是Windows和Unix上的 Control 密钥,以及Mac OSX上的 Command 密钥。

  • Backspace 向左删除; Del 向右删除

  • C-Backspace 删除字左; C-Del 删除右边的单词

  • 箭头键和 Page Up/Page Down 移动

  • C-LeftArrowC-RightArrow 按字移动

  • Home/End 去开始/结束行

  • C-Home/C-End 去开始/结束文件

  • 一些有用的Emacs绑定继承自Tcl/Tk:

    • C-a 行首

    • C-e 行尾

    • C-k 杀线(但不放在剪贴板中)

    • C-l 中心窗口周围的插入点

    • C-b 向后移动一个字符而不删除(通常也可以使用光标键)

    • C-f 前进一个字符而不删除(通常也可以使用光标键)

    • C-p 上行一行(通常你也可以使用光标键)

    • C-d 删除下一个字符

标准的键盘绑定(如 C-c 复制和 C-v 粘贴)可能工作。在“配置IDLE”对话框中选择键绑定。

25.5.2.1. 自动缩进

在开启语句之后,下一行缩进4个空格(在Python Shell窗口中,一个选项卡)。在某些关键字(break,return等)之后,下一行被占用。在前导缩进中,Backspace 最多可删除4个空格(如果有)。 Tab 插入空格(在Python Shell窗口中一个选项卡),数量取决于缩进宽度。由于Tcl/Tk限制,当前标签限制为四个空格。

另请参阅编辑菜单中的缩进/缩进区域命令。

25.5.2.2. 完成

为内置和用户定义的类的函数,类和属性提供完成。还为文件名提供了完整性。

在“。”之后的预定义延迟(默认为两秒)后,AutoCompleteWindow(ACW)将打开。或者(在字符串中)键入os.sep。如果在其中一个字符(加上零个或多个其他字符)之后键入一个选项卡,如果找到可能的延续,ACW将立即打开。

如果输入的字符只有一个可能的完成,则 Tab 将提供该完成而不打开ACW。

“显示完成”将强制打开完成窗口,默认情况下,C-space 将打开完成窗口。在空字符串中,这将包含当前目录中的文件。在空行中,它将包含当前名称空间中的内置和用户定义的函数和类,以及任何导入的模块。如果输入了一些字符,ACW将尝试更具体。

如果输入了字符串,ACW选择将跳转到与这些字符最匹配的条目。输入 tab 将导致在编辑器窗口或命令行管理程序中输入最长的非歧义匹配。两个 tab 在一行将提供当前ACW选择,将返回或双击。光标键,Page Up/Down,鼠标选择和滚轮都在ACW上操作。

可以通过在“。”之后键入隐藏名称的开头来访问“隐藏”属性。 ‘_’。这允许访问具有 __all__ 集合或类私有属性的模块。

完成和“Expand Word”工具可以节省大量的打字!

完成目前仅限于命名空间中的完成。将不能找到编辑器窗口中不通过 __main__sys.modules 的名称。使用导入运行模块一次以纠正这种情况。注意,IDLE本身在sys.modules中放置了很多模块,所以默认情况下可以找到很多模块。 re模块。

如果你不喜欢ACW弹出unbidden,只是让延迟更长或禁用扩展。

25.5.2.3. 呼叫提示

当在 acccessible 函数的名称之后键入 ( 时,显示调用提示。名称表达式可以包括点和下标。调用提示保持,直到它被点击,光标移出参数区域,或者 ) 被键入。当光标位于定义的参数部分时,菜单或快捷方式将显示一个调用提示。

calltip由函数签名和docstring的第一行组成。对于没有可访问签名的内置函数,calltip由第五行或第一个空行的所有行组成。这些详细信息可能会更改。

accessible 函数集取决于已导入用户进程的模块,包括Idle自身导入的模块以及自上次重新启动以来运行的定义。

例如,重新启动Shell并输入 itertools.count(。出现调用提示,因为Idle将itertools导入用户进程以供自己使用。 (这可能改变。)输入 turtle.write(,不出现任何内容。空闲不导入海龟。菜单或快捷方式也什么也没做。输入 import turtle,然后 turtle.write( 将工作。

在编辑器中,import语句只有在运行文件后才会生效。可能想在顶部写入import语句后运行文件,或在编辑之前立即运行现有文件。

25.5.2.4. Python Shell窗口

  • C-c 中断执行命令

  • C-d 发送文件结束;如果在 >>> 提示符处键入,则关闭窗口

  • Alt-/ (Expand Word)也有助于减少打字

    命令历史

    • Alt-p 检索与您输入的内容匹配的上一个命令。在OS X上使用 C-p

    • Alt-n 检索下一个。在OS X上使用 C-n

    • Return,而任何先前的命令检索该命令

25.5.2.5. 文本颜色

空白默认为白色文本上的黑色,但颜色具有特殊含义的文本。对于shell,这些是shell输出,shell错误,用户输出和用户错误。对于Python代码,在shell提示符或编辑器中,这些是关键字,内置类和函数名,遵循 classdef 的名称,字符串和注释。对于任何文本窗口,这些是光标(如果存在),找到的文本(如果可能)和选定的文本。

文本着色在背景中完成,因此未着色的文本偶尔可见。要更改颜色方案,请使用“配置IDLE”对话框“突出显示”选项卡。编辑器中调试器断点行的标记和弹出窗口和对话框中的文本不是用户可配置的。

25.5.3. 启动和代码执行

在使用 -s 选项启动时,IDLE将执行环境变量 IDLESTARTUPPYTHONSTARTUP 引用的文件。 IDLE首先检查 IDLESTARTUP;如果 IDLESTARTUP 存在,则引用的文件将运行。如果 IDLESTARTUP 不存在,则IDLE检查 PYTHONSTARTUP。这些环境变量引用的文件是存储从IDLE shell中频繁使用的函数或执行import语句以导入公共模块的便利位置。

此外,Tk 还会加载启动文件(如果存在)。请注意,无条件地加载Tk文件。此附加文件是 .Idle.py,并在用户的主目录中查找。此文件中的语句将在Tk命名空间中执行,因此此文件对于从IDLE的Python shell导入要使用的函数不是有用的。

25.5.3.1. 命令行用法

idle.py [-c command] [-d] [-e] [-h] [-i] [-r file] [-s] [-t title] [-] [arg] ...

-c command  run command in the shell window
-d          enable debugger and open shell window
-e          open editor window
-h          print help message with legal combinations and exit
-i          open shell window
-r file     run file in shell window
-s          run $IDLESTARTUP or $PYTHONSTARTUP first, in shell window
-t title    set title of shell window
-           run stdin in shell (- must be last option before args)

如果有参数:

  • 如果使用 --cr,则所有参数都放在 sys.argv[1:...] 中,sys.argv[0] 设置为 '''-c''-r'。不打开编辑器窗口,即使它是“选项”对话框中的默认设置。

  • 否则,参数是打开以进行编辑的文件,sys.argv 反映传递给IDLE本身的参数。

25.5.3.2. IDLE控制台的差异

尽可能地,使用IDLE执行Python代码的结果与在控制台窗口中执行相同的代码相同。但是,不同的接口和操作偶尔会影响可见的结果。例如,sys.modules 从更多的条目开始。

IDLE还将 sys.stdinsys.stdoutsys.stderr 替换为从Shell窗口获取输入和将输出发送到Shell窗口的对象。当这个窗口有焦点时,它控制键盘和屏幕。这通常是透明的,但是直接访问键盘和屏幕的功能将不起作用。如果 sysimportlib.reload(sys) 复位,则IDLE的更改将丢失,inputraw_inputprint 等功能将无法正常工作。

使用IDLE的Shell,一个进入,编辑,并回忆完整的语句。有些控制台一次只能使用一条物理线路。 IDLE使用 exec 来运行每个语句。因此,总是为每个语句定义 '__builtins__'

25.5.3.3. 运行时没有子进程

默认情况下,IDLE通过套接字在单独的子进程中执行用户代码,该套接字使用内部回送接口。此连接不是从外部可见的,并且没有数据发送到Internet或从Internet接收。如果防火墙软件反正,你可以忽略它。

如果尝试使套接字连接失败,Idle将通知您。这种故障有时是暂时的,但如果持续,则问题可能是防火墙阻塞连接或特定系统的配置错误。直到问题解决,可以使用-n命令行开关运行Idle。

如果IDLE使用-n命令行开关启动,它将在单个进程中运行,并且不会创建运行RPC Python执行服务器的子进程。如果Python无法在您的平台上创建子进程或RPC套接字接口,这将非常有用。但是,在此模式下,用户代码不与IDLE本身隔离。此外,当选择运行/运行模块(F5)时,不会重新启动环境。如果您的代码已被修改,您必须reload()受影响的模块,并重新导入任何特定项目(例如从foo import baz),如果更改生效。由于这些原因,如果可能,最好使用默认子进程运行IDLE。

3.4 版后已移除.

25.5.4. 帮助和偏好

25.5.4.1. 其他帮助来源

IDLE包括一个称为“Python文档”的帮助菜单条目,将打开包含教程的广泛帮助源,可从docs.python.org获取。所选的URL可以随时使用“配置IDLE”对话框从帮助菜单中添加或删除。有关详细信息,请参阅IDLE帮助菜单中的IDLE帮助选项。

25.5.4.2. 设置首选项

可以通过选项菜单上的配置IDLE更改字体首选项,突出显示,键和常规首选项。键可以由用户定义; IDLE附带四个内置的密钥集。此外,用户可以在“配置IDLE”对话框的“键”选项卡下创建自定义键集。

25.5.4.3. 扩展

IDLE包含扩展设施。可以使用配置扩展更改扩展的扩展。有关更多信息,请参阅idlelib目录中config-extensions.def的开头。默认扩展名当前为:

  • FormatParagraph

  • 自动展开

  • ZoomHeight

  • 脚本绑定

  • 呼叫提示

  • ParenMatch

  • 自动完成

  • CodeContext

  • RstripExtension