python理解-模块
概述
模块是最高级别的程序组织单元,它将程序代码和数据封装起来以便重用。
模块导入时,模块文件的全局作用域变成了模块对象的对象的命名空间。
import
与include完全不同,执行步骤:
1.找到模块文件;
2.编译成位码;
3.执行模块的代码来创建其所定义的对象;
注:模块的import完全不同于C中的#include,并非简单的插入另一个文件。import除了搜索到模块文件外,还会将模块编译,并执行模块的代码,创建其所定义的对象(变量,函数,类)。
from
from会把变量名复制到另一个作用域,可在脚本中直接使用变量名,而不需要通过模块。
import和from都是隐形的赋值语句,可以嵌套在代码语句中:
1.import将整个模块对象赋值给另一个变量名;
2.from将一个或多个变量名赋值给另一个模块中同名的对象;
from语句潜在的陷阱:
1.有破坏命名空间的潜质,如果重名,会覆盖同名变量;
2.和reload同时使用时,导入的变量名可能仍引用之前的对象;
reload
reload是python中的内置函数,而不是语句;
传给reload的是已经存在的模块对象,而不是变量名;
reload会在适当的地方修改模块对象,并不会删除并重建对象。因此,程序中任何引用该模块对象的地方,自动会受到reload的影响。
包导入
使用相对路径做包导入
Still water runs deep...
浙公网安备 33010602011771号