文章目录
1、模块
模块
就是很多个功能的集合体,我们的程序可以通过导入模块
,来使用这个模块里面的功能;从而提升程序的开发效率
在python中模块本质上就是一个 .py文件
,在这个文件中有着许多函数
用来定义功能;导入模块实际上就是导入 .py文件,导入后就可以直接调用里面的函数了;如:
ah.py
文件 其 模块名
就是 ah
,我们通过模块名导入模块
1.1 模块的分类
1.1.1 内置模块
python自带的,安装好python解释器后,就拥有的模块,里面的功能都是默认的;通常内置函数就在这些模块当中
1.1.2 第三方模块(比较重要)
需要到指定地方进行下载的模块,通常下载的一个模块中就包含了许多功能;如:web、Django、flask等;python中的第三方模块超20万个,我们只需按规则使用,针对性的学习
1.1.3 自定义模块
自己创建的模块,里面的功能由自己定义;如下:
1.2 模块的导入
模块需要
导入
才能使用里面的功能
1.2.1 单个模块的导入
语法格式:
import 模块名
,注意:导入模块后会立即执行里面的代码
- 若需要使用模块中的名字,需要加上
模块名.
作为前缀,避免与本地相同名字冲突
语法格式:
模块名.名字
案例:
import ah # 导入模块 ah,立即执行其中的代码
ah.a() # 调用模块中的函数
输出结果:
我是阿豪
666
tips:
一般来说py文件的名字可以任意取,但当该文件作为模块来使用时,就需要注意了,要避免与内置模块重名,以免调用时发生冲突,可以参考变量的取名规则
1.2.2 同时导入多个模块
语法格式:
import 模块名1,模块名2,...
,我们在编写代码时建议一行导入一个模块,同时导入多个模块不方便扩展
1.2.3 模块导入规范
-
通常我们会将导入的模块写在最上方,方便全局可用,若写在局部内,则只能在局部使用(在个别情况下使用局部导入)
-
三种类型模块的导入顺序,从高到低依次为:
内置模块、第三方模块、自定义模块
1.2.4 给导入的模块取别名
- 单个模块取别名
语法格式:
import 模块名 as 别名
注意:别名
取好后,就只能使用别名来调用模块内的功能了,如:别名.名字
- 多个模块取别名
语法格式:
impotr 模块名1 as 别名1, 模块名2 as 别名2,...
1.2.5 同时导入模块和名字
- 导入单个名字
语法格式:
from 模块名 import 名字
这种导入方式在导入模块的同时还导入了模块中的名字,这样我们就可以不用加前缀,直接调用
模块中的名字
案例:
from ah import a # 调用模块 ah 和 函数 a
a() # 输出结果:666
- 同时导入多个名字
语法格式:
from 模块名 import 名字1,名字2,...
总结:
该方法的好处是不用通过加上 前缀
来使用模块中的名字,坏处是直接导入名字可能会遇到同名覆盖
的问题
1.2.6 给导入的名字取别名
语法格式:
from 模块名 import 名字 as 别名
from 模块名 import 名字1 as 别名1,名字2 as 别名2,...
from 模块名 impot 名字1,名字2 as 别名2,...
说明:
给名字取别名可以避免同名覆盖
问题
扩展:导入模块中所有的名字(不推荐)
语法格式:
from 模块名 import *
这种导入方式可以一次性导入模块中所有的名字,以下划线
开头的名字不会被导入;如:_ab,_name
注意:
这种导入方式无法取别名,容易发生同名覆盖的现象,所以不推荐使用
2、模块的查找路径和优先级
我们自定义的模块通常放在
指定的路径下
,那么内置模块又放在什么位置呢?当我们调用模块时,python是如何查找该模块以及各类模块查找的优先级是怎样的?
2.1 查找路径
我们知道
模块
的本质就是一个.py文件
,这些文件存放在不同路径下,我们可以通过以下方法,找到这些路径
import sys # 导入内置模块 sys
print(sys.path) # 打印模块下的名字 path,得到模块的查找路径
说明:
打印 sys.path
得到了一个列表,列表中的元素就是这些模块的存放路径了,而python就是按照这个列表中的路径,从左往右依次查找;默认第一个路径代表当前文件夹,后面的路径为python的安装路径
拓展:
我们通过pip下载的第三方库默认是安装到下面这个路径中:python\\lib\\site-packages
2.2 优先级
从上面我们知道,python按照
path
这个列表中的路径,从左往右依次查找;当在前面的路径找到指定模块后就会停止查询
,不会继续向后寻找了;当模块不在这个列表中的路径中时,我们还可以通过append()和insert()
命令将模块所在路径插入到列表中任意位置
3、包
包本质上也是一个模块,若
模块
是文件,包
就相当于一个文件夹,用来管理模块的
3.1 python中的包
在python中一个文件夹就可以当做一个包
tips:
在python2.0版本,文件夹里必须要有一个文件 __init__.py
,这个文件夹才能算作一个包;而在python3.0版本没有这个规定,但为了规范,一般还是会放置该文件
在pycharm中有个快捷方式 python package,可以直接创建一个包,用该方法创建的文件夹自带 __init__.py
文件;如:
3.2 包的导入
3.2.1 直接导入
语法格式:
import 包名
包被导入后,会立即执行其中__init__.py
文件中的代码
案例:
3.2.2 导入包下指定模块
- 方法1:
语法格式:
import 包名.模块名
调用模块下的名字:包名.模块名.名字
给模块取别名:
语法格式:import 包名.模块名 as 别名
调用模块下的名字:别名.名字
- 方法2:
语法格式:
from 包名 import 模块名
取别名:from 包名 import 模块名 as 别名
- 方法3:
语法格式:
from 包名.模块名 import 名字
给名字取别名:from 包名.模块名 import 名字 as 别名
注意:
当需要导入包下多个模块时,模块间用逗号隔开即可;当一个包下还有包时,我们可以通过 .
来连接;如:from 包名1.包名2.模块名 import 名字
4、第三方模块的给管理(pip的使用)
我们知道第三方模块就是别人写好的python文件,而我们需要到指定地方去下载它,下载好的模块默认保存在python安装路径下:
python/lib/site-package
;同时我们也可以在sys.path
内查找到该路径
python为了更方便的管理第三方模块,单独设立了一个功能,也就是pip
了,我们往下看
4.1 pip的基本使用
pip 默认加入到环境变量中,我们可以直接在cmd 命令行中使用它
-
查看所有下载的第三方库
命令:pip list
-
下载第三方库
命令:pip install 库名
-
卸载第三方库
命令:pip uninstall 库名
注意:
pip命令下载第三方那三个库默认都是在外网上进行下载,速度非常慢;这里我们可以通过换源到国内进行下载,可以大大提高下载速度
命令:pip install 库名 -i 镜像源地址
- 常用镜像源地址
豆瓣:https://pypi.douban.com/simple/
清华大学:https://pypi.tuna.tsinghua.edu.cn/simple/
阿里云:https://mirrors.aliyun.com/pypi/simple/
中国科技大学:https://mirrors.ustc.edu.cn/pypi/simple/ps/
案例: