一、基本概念
1、模块、包
??????? 模块 module:一般情况下,是一个以.py为后缀的文件。其他可作为module的文件类型还有".pyo"、".pyc"、".pyd"、".so"、".dll"。module 可看作一个工具类,可共用或者隐藏代码细节,将相关代码放置在一个module以便让代码更好用、易懂,让coder重点放在高层逻辑上。module能定义函数、类、变量,也能包含可执行的代码。module来源有3种:①Python内置的模块(标准库);②第三方模块;③自定义模块。 ??????? 包 package: 为避免模块名冲突,Python引入了按目录组织模块的方法,称之为包。包是含有Python模块的文件夹。
???????? 当一个文件夹下有???init???.py时,意为该文件夹是一个包,其下的多个模块构成一个整体,而这些模块都可通过同一个包导入其他代码中。??init???.py文件 用于组织包,方便管理各个模块之间的引用、控制着包的导入行为。??init???.py文件可以什么内容都不写,存在即可,相当于一个标记。但若想使用from pacakge_1 import *这种形式的写法,需在??init???.py文件中加上:__all__ = [‘file_a’, ‘file_b’] #package_1下有file_a.py和file_b.py,在导入时??init???.py文件将被执行。__all__是重要的变量,用来指定此包被import *时,哪些模块会被import进当前作用域中。不在__all__列表中的模块不会被其他程序引用。可以重写__all__,如__all__= [‘当前所属包模块1名字’, ‘模块1名字’],如果写了这个,则会按列表中的模块名进行导入。
???????? 在模糊导入时,形如from package import *,*是由__all__定义的。在模糊导入时,形如from package import *,*是由__all__定义的。在精确导入时,形如 from package import *、import package.class。???path???也是一个常用变量,是个列表,默认情况下只有一个元素,即当前包的路径。修改???path???可改变包内的搜索路径。
#、参考链接
- Python 3.x | 史上最详解的 导入(import)
|