使用 exec 来运行模块文件——注意 | 第一部分 开始 —— 第 3 章: 你是如何运行程序的 |《学习 python:强大的面向对象编程(第 5 版)》| python 技术论坛-金年会app官方网
版本差异说明:除了允许形式 exec(open('module.py'))
,python 2.x也包含了一个 execfile('module.py')
内置函数,它们两个都自动读取文件的内容。这两种形式都等价于 exec(open('module.py').read())
形式,它更复杂但在 2.x 和 3.x 中都可以运行。
不幸的是,这两种更简单的2.x形式在3.x中都不可用,这意外着必须理解文件和他们的读取方法来完全理解当今的这个技术(这似乎是3.x中美学大于实用性的一个案例)。事实上,在 3.x 中的 exec
形式涉及到如此多的输入以至于最好的建议可能是不要使用它——通过输入系统shell命令行或通过使用在下一节中描述的idle目录选项来启动文件通常更简单。
要获取关于被 3.x exec
形式使用的文件接口的更多信息,参见第9章。要获取关于 exec
和它的两个类似命令 eval
和 compile
的更多信息,参见第10章和第25章。