目录
模块
模块的定义:模块相当于是一个工具,可以通过调用来快速实现某些功能。
python的模块有四部分
1.内置模块:python解释器启动自带的模块
2.pip安装的模块:使用pip install安装的模块
3.自定义模块:自定义的代码块
4.包:
import 和from......import
函数的调用是使用函数名来直接调用,而模块的调用是根据import与from......import来进行调用的。
import首次导入模块发生的3件事情:
1.以模块为准创造一个模块的名称空间
2.执行模块对应的文件,将执行过程中产生的名字都丢到模块的名称空间
3.在当前执行文件中拿到ige模块名
模块的重复 导入会直接引用之前已经出现的结果,不会重复执行模块的文件
导入多个模块的方法
import time
import sys
import的优缺点
优点:永不冲突
缺点:每次导入多输入几个字符
time.time()
from......import......首次导入模块发生的3件事情
1.开辟内存空间,内存空间命名为time
2.把time.py中的所有代码读入名称空间,然后运行
3.把sleep()读入import和from......import.py中,因此可以直接使用方法名来调用
书写的格式为:from 模块名 import 方法名
from......import......的优缺点
优点:少输入几个字符
缺点:容易发生冲突
模块搜索路径
模块的搜索路径指的是在导入模块时需要检索的文件夹
导入模块时查找模块的顺序是:
- 先从内存中已经导入的模块中寻找
- 内置的模块
- 环境变量sys.path中找
搜索文件的时候是从哪里先查找的
1.内存与自定义比较
import time
import testt
print(testt.abc)
time.sleep(10) # 顺带删掉testt.py
print(testt.abc)
结果:内存 -- > 自定义
2.内置与自定义比较
先自定义一个文件time.py
import time
print(time.time()) #输出结果为1569488479.2050285
结果:内置 --> 自定义
3.内置与内存比较
import time
import requests
print(requests.get('http://www.baidu.com'))
time.sleep(15)
print(requests)
结果:内存 --> 内置
所以搜索文件的顺序是:内存 --> 内置 --> 自定义
Python文件的两种用途
执行文件:当前运行的文件
模块文件:用来导入的文件
from testt import shopping
__name__ == '__main__'不成立, __name__ != '__main__'
# 当testt为模块文件时,__name__等于文件名
# __name__是每个文件独有的,当该文件作为执行文件运行时,__name__等于'__main__';当该文件作为模块文件导入时,__name__等于文件名
用法:用来进行模块测试