平时我们所看到的每个项目都是由一个个模块组成的,而一个个相关的模块放在一起有组成了一个个包,今天我们就来细致的了解一下python中的模块和包 😃 !!
模块
Python中的模块(Module),模块是一个包含所有你定义的函数和变量的文件.Python 提供了一个办法,为一些脚本或者交互式的解释器实例使用,其后缀名是.py,这个文件被称为模块。
模块可以被别的程序引入,以使用该模块中的函数等功能。
python底层已经为我们提供了许多像上面这样的模块,平时我们使用时只需要进行声明调用就好
模块导入方式:
1.import 模块名 在调用时要 模块名.方法名
2.from 模块名 import 方法名
3.from 模块名 inport * 导入模块中所有的内容
但是要注意:如果一个模块文件中有__all__变量,当使用from xxx import * 导入时,只能导入这个列表中的元素,指的是将通配符()进行添加筛选通过all进行对进行筛选,只有被筛选中的__all__里面的功能才是*能够代替的
4.import 模块名 as 别名
也可以为方法或别的模块名定义别名,但是定义了别名就不能使用原来的模块名或方法名进行调用
模块的制作
在Python中每个.py文件都可以制作为一个模块,从而进行调用,模块名就是文件名,也就是说自定义模块名称必须要符合标识符命名规则
注意
1.自己的文件名不要和已有模块的文件名重复,否则会导致模块功能无法使用
2.使用from 模块名 import功能的时候,如果功能名字重复,调用到的是最后定义的或导入的功能
3.导入了模块之后的程序代码中的变量一般不能和模块的名称一致,否自在调用模块的时候,这个名称已经是变量了,不在是模块,因为Python中的变量是引用
模块的定位顺序
当导入一个模块,Python解析器对模块的位置的搜索顺序是:
当前目录如果不在当前目录,Python则搜索在shell变量PythonPath下的每个目录如果都找不到,Python会查看默认路径。UNIX下,默认路径/user/local/lib/Pythonwindows下:默认路径当前python.exe里面的lib模块搜索路径存储在system模块的sys.path变量中。变量包含当前目录,PythonPath由安装过程决定
包
包将有联系的模块组织在一起,放在同一个文件夹下面,并且在这个文件夹里面创建一个名字为__init__.py文件,那么这个文件夹就称之为包
新建包
项目中新建的(Python Package)选项就是创建包,如果正确的创建包的话,里面会自动生成一个名为__init__的文件
__init__文件的作用:控制着包的导入行为
init文件的作用类似于模块中的_all_的作用,在init文件中同样添加一行__all__对应的列表中,可以选择被导入的模块的名字通配符自动筛选这些模块
包的导入方式和模块的导入方式类似