python IDLE的执行py文件

Import
在IDLE下也可以用import来运行文件。如运行test.py文件:improt test
但是对于一个文件,improt只能在第一次导入时运行文件。在第一次导入之后,其他的导入都不会再工作,甚至在另一个窗口中改变并保存了模块的源代码文件也不行。实验了下,发现重启IDEL后依然不行。这是有意设计的结果。导入是一个开销很大的操作以至于每个程序不能够重复多于1次。

Reload
但如果想要python在同一次会话中再次运行文件,需要用内置的reload(重载)函数。
调用格式是:reload(test)
使用reload,输出中会包含<module 'test' from'C:/Python27/Practice Code/test.pyc'>。
这是因为Reload是一个函数,而import是一个语句。调用时需要传递模块名称给reload函数作为括号中的参数,因此在重载时得到了额外的一行输出。最后一行输出是reload调用后的返回值的打印显示,reload函数的返回值是一个python模块对象。但对于未经过修改的程序,调用reload函数,也仅仅会得到一行类似上面的返回值的打印显示。
需要额外说明的是,如果没有使用import,reload函数会报错。也就是说reload函数需要在已经使用了import的情况下使用。可以使用Alt-p,Alt-n回滚到上一条命令,另外, IDLE中没有清屏选项。

execfile
另一个通过交互提示模式运行文件的方法是内置函数execfile(‘test.py’)。默认情况下,每次调用execfile,都会运行一个新文件,但从技术上来说它并没有导入模块。
模块导入是一种运行代码文件的方法模块也是python程序最大的程序结构。Python程序往往有多个模块构成,通过import语句连接在一起。每个模块文件是一个独立完备的变量包装,即一个命名空间。一个模块文件不能看到其他文件定义的变量名,除非他明确地导入了那个文件,所以模块文件在代码文件中起到了最小化命名冲突的作用。
如果发生了链接错误,试一下通过单个进程的模式启动IDLE。IDLE要求在其独立的用户和GUI进程间通信,有时候会在特定的平台上发生启动错误。如果遇到了这样的链接错误,它常常可以通过系统命令行使IDLE运行在单一的模式下进行启动,从而避免了通信的问题:-n命令行标志为可以强制进入这种模式。如,在Windows撒谎功能,可以运行系统命令 test.py –n.


转载自:http://www.cnblogs.com/dsky/archive/2012/06/05/2535478.html

你可能感兴趣的:(python IDLE的执行py文件)