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、重载

浙公网安备 33010602011771号