• 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函数,也仅仅会得到一行类似上面的返回值的打印显示。

    需要额外说明的是,如果没有使用importreload函数会报错。也就是说reload函数需要在已经使用了import的情况下使用。可以使用Alt-pAlt-n回滚到上一条命令,另外, IDLE中没有清屏选项。

    execfile

    另一个通过交互提示模式运行文件的方法是内置函数execfile(‘test.py’)。默认情况下,每次调用execfile,都会运行一个新文件,但从技术上来说它并没有导入模块。

    模块导入是一种运行代码文件的方法模块也是python程序最大的程序结构。Python程序往往有多个模块构成,通过import语句连接在一起。每个模块文件是一个独立完备的变量包装,即一个命名空间。一个模块文件不能看到其他文件定义的变量名,除非他明确地导入了那个文件,所以模块文件在代码文件中起到了最小化命名冲突的作用。

    如果发生了链接错误,试一下通过单个进程的模式启动IDLEIDLE要求在其独立的用户和GUI进程间通信,有时候会在特定的平台上发生启动错误。如果遇到了这样的链接错误,它常常可以通过系统命令行使IDLE运行在单一的模式下进行启动,从而避免了通信的问题:-n命令行标志为可以强制进入这种模式。如,在Windows撒谎功能,可以运行系统命令 test.py –n.

  • 相关阅读:
    783. Minimum Distance Between BST Nodes
    290. Word Pattern
    155. Min Stack
    HDU 6069 Counting Divisors (素数+筛法)
    BZOJ 2038 小Z的袜子(hose) (莫队算法)
    HDU 6127 Hard challenge (极角扫描)
    HDU 6096 String (AC自动机)
    LightOJ 1268 Unlucky Strings (KMP+矩阵快速幂)
    CodeForces 219D Choosing Capital for Treeland (树形DP)
    ZOJ 3201 Tree of Tree (树形DP)
  • 原文地址:https://www.cnblogs.com/dsky/p/2535478.html
Copyright © 2020-2023  润新知