模块与包
python模块,一个.py文件
导入模块的语法:
import importable importable#可以是包或包中的模块
import importable1,....,importableN
import importable as preferred_Name
第三种语法可能导致名称冲突
一般写在.py文件的起始位置:顺序导入-标准库,第三方库,自己的库
from importable import object as preferred_name
from importable import object1,...,objectN
from importable import( object1 ,...,objectN)
from importable import * #*代表导入非私有的所有对象
这些语法使得导入的对象是直接可存取的,如果导入大量的对象,可以多行完成;如果模块中有一个全局的__all__变量,其中存放一个变量列表,就导入名称包含__all__变量的所有对象
包
包就是一个目录,其中包含一组模块和一个__init__.py的文件
from package import * 从包中导入模块
如 Graphics/
__init__.py
Jpeg.py
Bmp.py
这样Graphics就是一个包
__init__.py中必须增加的必要语句
__all__=["Jpeg","Bmp"]
有了__init__.py我们就可以使用 from Graphics import * 来导入__all__列表中指定的所有模块,所有模块都可以直接访问
若使用 from moudle import * 应当在模块本身定义__all__变量,这样就会导入__all__变量所指定的对象
python允许使用包的嵌套