【Python 学习手册笔记】如何运行程序

原创 2015年07月06日 22:41:30

        每一个以扩展名py 结尾的Python 源代码文件都是一个模块。其他的文件可以通过导入一个模块读取这个模块的内容。导入从本质上来讲,就是载入另一个文件,并能够读取那个文件的内容;

 

         这种基于模块的方式使模块变成为Python 程序架构的核心慨念。更大的程序往往以多个模块文件的形式出现,并且导人了其他模块文件的工具。其中的一个模块文件设计成主文件,或叫做顶层文件(就是那个启动后能够运行整个程序的文件);

       

       导入文件是另 种运行文件的方发;但是在默认情况下,只是在每次会话的第一次运行(真的,不信你可以试一
下)。在第一次导入之后,其他的导入都不会再工作,甚至在另一个窗口中改变并保存了模块的源代码文也不行。

 

        但是如果真的想要 python在同一次会目中再次运行文件(不停止和重新启动会话),需要调用imp 标准库模块中可用的reload函数(这个函数也是一个Python 2.6 内置函数,但是在python3.0 中不是内置的)。
>>> fromimp import reload
>>>reload(scriptl)

         reload 函数希望获得的参数是一个已经加载了的模块对象的名称,所以如果在重载之前请确保已经成功地导入了这个模块。值得注意的是,reload 函数在模块对象的名称前还需要括号,import 则不需要reload是一个被调用的函数,而import是一个语句。

 

模块的显要特性:属性

             般意义上来说,模块往往就是变量名的封装,被认作是命名空间。在一个包中的变量名就是所谓的属性:也就是说,属性就是绑定在特定的对象上的变量名(就像一个模块)。

        在典型的应用中,导入者得到了模块文件中在顶层所定义的所有变量名。这些变量名通常被赋值给通过模块函数、类、变量以及其他被导出的工具。这些往往都会在其他文件或程序中使用。 表面上来看,一个模块文件的变量名可以通过两个Python 语句读取一import from ,以及reload 调用。
          内置函数dir() 可以获取模块可用变量名列表;

 

模块和命名空间

       一般来说, Python 程序往往由多个模块文件构成,通过import 语句连接在一起。每个模块文件是一个独立完备的变量包,即一个命名空间。一个模块文件不能看到其他文件定义的变量名,除非它显式地导入了那个文件,所以模块文件在代码文件中起到了最小化命名冲突的作用。因为每个文件都是一个独立完备的命名空间,即使在它们拼写相同的情况下,一个文件中的变量名是不会与另一个文件中的变量冲突的。

使用exec运行模块文件
例如,exec(open('module.py' ).read()) 内置函数调用,是从交互提示模式启动文件而不必导入以及随后的重载的一种方法。每次exec都运行文件的最新版本,而不需要随后的重载.
默认情况下,每次以这种方式调用exec的时候,它都重新运行文件,就好像我们把文件粘贴到了调用exec的地方. 因此, exec不需要在文件修改后进行棋块重载,它忽略了常规的模块导入逻辑。

缺点是,由于exec的工作机制就好像在调用它的地方粘贴了代码一样,和前面提到的from一样,对于当前正在使用的变量有潜在的默认覆盖的可能。

相反,基本的import语句每个进程只运行文件一次,并且它会把文件生成到一个单独的模块名称空间中, 以便它的赋值不会改变你的作用域中的变量。为模块名称空间分隔所付出的代价是, 在修改之后需要重载。

命名空间就是变量(也就是变量名)的封装。它在Python中以一个带有属性的对象的形式出现。每个模块文件自动成为一个命名空间:也就是说,一个对变量的封装,这些变量对应了顶层文件的赋值。命名空间可以避免在Python程序中的命名冲突一一因为每个模块文件都是独立完备的命名空间,文件必须明确地导入其他的文件,才能使用这些文件的变量名。

        



 

       







相关文章推荐

Python学习笔记之三——如何运行Python程序

如何运行Python程序

Python3.6笔记之将程序运行结果输出到文件

新建py文件,在里面写入Python代码,代码的功能是打印10次“Hello!”: 在命令行中运行Python脚本,并将运行结果保存到文件中: (在此之前,要确保设置了环境变量) 首先,来到Py...

《python学习手册》读书笔记(2015.4.26)

面试被拒之后感觉基础实在是不扎实,平时写东西都是用什么学什么,很多基础的概念,属性都没有搞清楚,所以决定听面试官的建议把这本书从头看一遍,多看上花十块钱买的电子书,目前看到第三章,每天整理下看到的以前...

Python参考手册(第4版) 学习笔记1

第一章 在Shell模式下,可以使用 _ 表示上次的计算结果,用来参与下一次运算。 如: 2+3 输出 5, 然后 _ + 1 输出 6。(注:只可以在Shell中这么用) ...
  • bbdxf
  • bbdxf
  • 2014年05月22日 17:56
  • 1622

python学习手册笔记--第16~19章--function_base

第16章--函数基础 函数定义: def (arg1,arg2,……)      第17章--作用域 函数定义了本地作用域 模块定义了全局作用域 每次函数的调用都创造了一个新的本地作...

python学习手册笔记--第21~24章

第21~22章    模块及模块的编写 以保留字命名的.py不能导入 from module1 import *    顶层所有赋值的拷贝 import和from都是赋值语句,可以放在if中 ...

Python参考手册(第4版) 学习笔记2

第一章 在Shell模式下,可以使用 _ 表示上次的计算结果,用来参与下一次运算。 如: 2+3 输出 5, 然后 _ + 1 输出 6。(注:只可以在Shell中这么用) ...
  • bbdxf
  • bbdxf
  • 2014年05月22日 17:57
  • 2333

python manual读书笔记--第2章python如何运行程序

python如何运行程序 要弄清楚python如何运行程序这个问题,需要先搞清楚什么是python解释器?源代码?字节码?PVM? python解释器是运行python程序的程序; 源代码是...

Java学习篇之---Eclipse中运行python程序

Java学习篇之---Eclipse运行python程序 本文主要介绍在Windows环境下,搭建能在Eclipse中运行python程序的环境: 一、Eclipse 下载与安装: Eclipse是写...

python 菜鸟成长笔记(一)Python学习手册

个人就Python学习手册第一章的笔记 从Python的缺点和优点介绍了Python这门语言...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:【Python 学习手册笔记】如何运行程序
举报原因:
原因补充:

(最多只允许输入30个字)