24.6. 空闲 — Python 文档

来自菜鸟教程
Python/docs/2.7/library/idle
跳转至:导航、​搜索

24.6. 闲置的

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

IDLE具有以下特点:

  • 100% 纯 Python 编码,使用 tkinter GUI 工具包
  • 跨平台:在 Windows、Unix 和 Mac OS X 上的工作方式大致相同
  • 带有代码输入、输出和错误消息着色的 Python shell 窗口(交互式解释器)
  • 具有多个撤销、Python 着色、智能缩进、调用提示、自动完成和其他功能的多窗口文本编辑器
  • 在任何窗口中搜索,在编辑器窗口中替换,并搜索多个文件 (grep)
  • 具有持久断点、步进和查看全局和本地命名空间的调试器
  • 配置、浏览器和其他对话框

24.6.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 继承的:

    • Ca 行首

    • Ce 行尾

    • Ck 终止线(但不将其放入剪贴板)

    • Cl 插入点周围的中心窗口

    • Cb 后退一个字符而不删除(通常您也可以使用光标键进行此操作)

    • Cf 向前移动一个字符而不删除(通常您也可以使用光标键进行此操作)

    • Cp 上一行(通常也可以使用光标键)

    • Cd 删除下一个字符


标准键绑定(如 Cc 复制和 Cv 粘贴)可能有效。 在“配置空闲”对话框中选择键绑定。

24.6.2.1. 自动缩进

在块开始语句之后,下一行缩进 4 个空格(在 Python Shell 窗口中缩进一个选项卡)。 在某些关键字(break、return 等)之后,下一行被缩进。 在前导缩进中,Backspace 最多删除 4 个空格(如果存在)。 Tab 插入空格(在 Python Shell 窗口中的一个选项卡),数量取决于缩进宽度。 目前,由于 Tcl/Tk 的限制,制表符被限制为四个空格。

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


24.6.2.2. 完成

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

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

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

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

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

“隐藏”属性可以通过在“.”后面键入隐藏名称的开头来访问,例如 '_'。 这允许访问设置了 __all__ 的模块或类私有属性。

完成和“扩展单词”功能可以节省大量打字时间!

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

如果您不喜欢 ACW 突然弹出,只需延长延迟或禁用扩展。


24.6.2.3. 提示

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

调用提示由函数签名和文档字符串的第一行组成。 对于没有可访问签名的内置函数,调用提示包含第五行或第一个空行的所有行。 这些细节可能会改变。

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

例如重启Shell,输入itertools.count(。 出现调用提示是因为 Idle 将 itertools 导入用户进程供其自己使用。 (这可能会改变。)输入 turtle.write( 并且什么也没有出现。 空闲不导入乌龟。 菜单或快捷方式也不做任何事情。 输入 import turtle,然后 turtle.write( 将起作用。

在编辑器中,导入语句在运行文件之前无效。 人们可能希望在顶部编写导入语句后运行文件,或者在编辑之前立即运行现有文件。


24.6.2.4. Python Shell 窗口

  • Cc中断执行命令

  • Cd 发送文件尾; 如果在 >>> 提示符下键入,则关闭窗口

  • Alt-/(扩展词)对于减少打字也很有用

    命令历史

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

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

    • Return 在任何以前的命令上检索该命令


24.6.2.5. 文字颜色

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

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


24.6.3. 启动和代码执行

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

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

24.6.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] 设置为 [ X113X]、'-c''-r'。 不会打开编辑器窗口,即使这是“选项”对话框中的默认设置。
  • 否则,参数是打开用于编辑的文件,sys.argv 反映传递给 IDLE 本身的参数。


24.6.3.2. 空闲控制台差异

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

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

使用 IDLE 的 Shell,您可以输入、编辑和调用完整的语句。 某些控制台一次只能使用一条物理线路。 IDLE 使用 exec 来运行每个语句。 因此,始终为每个语句定义 '__builtins__'


24.6.3.3. 在没有子进程的情况下运行

默认情况下,IDLE 通过使用内部环回接口的套接字在单独的子进程中执行用户代码。 此连接在外部不可见,并且不会向 Internet 发送或从 Internet 接收任何数据。 如果防火墙软件仍然抱怨,您可以忽略它。

如果尝试建立套接字连接失败,Idle 会通知您。 此类故障有时是暂时的,但如果持续存在,则问题可能是防火墙阻止了连接或特定系统的错误配置。 在问题解决之前,可以使用 -n 命令行开关运行 Idle。

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

自 3.4 版起已弃用。


24.6.4. 帮助和偏好

24.6.4.1. 其他帮助来源

IDLE 包括一个名为“Python Docs”的帮助菜单条目,它将打开 docs.python.org 上提供的大量帮助资源,包括教程。 可以随时使用“配置空闲”对话框从帮助菜单中添加或删除选定的 URL。 有关详细信息,请参阅 IDLE 帮助菜单中的 IDLE 帮助选项。


24.6.4.2. 设置首选项

可以通过“选项”菜单上的“配置空闲”更改字体首选项、突出显示、键和一般首选项。 键可以由用户定义; IDLE 附带四个内置键组。 此外,用户可以在 Keys 选项卡下的 Configure IDLE 对话框中创建自定义键集。


24.6.4.3. 扩展

IDLE 包含一个扩展工具。 可以使用配置扩展更改扩展的首选项。 有关详细信息,请参阅 idlelib 目录中 config-extensions.def 的开头部分。 当前的默认扩展名是:

  • 格式段落
  • 自动展开
  • 缩放高度
  • 脚本绑定
  • 通话提示
  • 配对
  • 自动完成
  • 代码上下文
  • Rstrip扩展