python手册 模块整理

一、模块的基本知识

1、模块在导入时,模块文件的全局作用域变成了模块对象的命名空间

2、模块是python程序中最高的程序组织单元

3、脚本:顶层文件包含了程序的主要控制流程

4、程序一次导入指定文件时,会执行三个步骤:

  (1)找到模块文件

  (2)编译成位码(需要时)

  (3)执行模块的代码来创建其所定义的对象

  python把载入的模块存储到一个名为sys.modules的表中,在第一次导入操作的开始检查该表,如果模块不存在,才会启动三个步骤

5、python模块的搜索路径:

  (1)程序的主目录

  (2)pythonpath目录

  (3)标准连接库目录

  (4)任何.pyth文件的内容

  sys.path是文件的搜索路径

二、模块代码编写基础

1、当一个模块被导入时,python会把内部模块名映射到外部模块名

2、模块会在第一次import或from时载入并执行,并且只在第一次如此,Python只对每个进程的每个文件做一次操作,之后的导入操作都会调取已经加载的模块对象

3、import将整个模块对象赋值给一个变量名

   from 将一个或多个变量名赋值给另一个模块中同名的对象(如果程序中存在相同名称的对象,将会被覆盖)

4、y=[1,2] 对于修改一个已取出的可变对象,则会影响导入模块的内对象

5、删除调用的模块 del 模块

6、from潜在的陷阱

   1、from语句有破坏命名空间的潜质

    from导入的变量碰巧与作用域中的变量名相同,会覆盖作用域中的变量

  2、与reload调用同时使用时,导入的变量名可能会之前版本的对象,

7、两个不同的模块中定义了相同的变量名的变量

8、模块的命名空间

  在模块文件的顶层,每一个赋值的变量都会变成该模块的属性

    1、模块语句会在首次导入时执行  Python会建立空的模块对象,并逐一执行该模块文件内的语句

    2、顶层的赋值语句会创建模块属性

    3、模块的命名空间能通过属性__dict__或dir(M)获取  (字典)

    4、模块是一个独立的作用域(本地变量就是全局作用域)

9、重载

 

posted @ 2016-05-10 19:04  若时光搁浅  阅读(1046)  评论(0)    收藏  举报