模块就是一系列功能的集合体
模块大致分为四种类别:
1:一个py文件就是一个模块,文件名叫test.py模块名叫test
2:一个包含有_init_.py文件的文件夹称之为包,包也是模块
3:使用c编写并连接到python解释器的内置模块
4:已被编译为共享库或DLL的c或c++扩展
1:自带的模块
2:第三方模块:pip3 install requests
3:自定义的模块
1.3.1:自带的模块,第三方提供---》拿来主义,提升开发效率
1.3. 2:自定义模块—》是为了解决代码冗余(代码很乱的意思)问题
如何用?
首次导入模块发生的事情:
2.1.1:运行spam.py创建一个模块的名称空间,将spam.py运行过程中产生的名字都丢到名称空间中
2.1. 2:在当前名称空间中得到一个名字,该名字是指向模块的名称空间
ps:后续的导入直接使用首次导入的成功,不会重复执行spam.py,不会重复创建名称空间
通常情况下导入的所有语句都应该写在文件的开头,然后分为三部分
第一部分:先导入自带的模块
第二部分:导入第三方
第三部分:导入自定义的
首次导入模块发生的事情:
1:运行spam.py创建一个模块的名称空间,将spam.py运行过程中产生的名字都丢到名称空间中
2:在当前名称空间中得到一个名字,该名字是指向模块的名称空间的那个money
当主文件调用一个模块的时候,是按照这样的顺序搜索模块的:
搜索内存中的(如果模块第一次导入后,文件执行结束前在内存中存在模块的名称空间)
在内置的模块中搜索
在sys.path的目录中挨个搜索模块的名字的py文件