Python – Module 模块
什么是模块
模块是一个py文件,以 .py 结尾,模块能定义函数,类和变量,模块里也能包含可执行的代码
模块的导入
模块在使用前需要先导入
导入语法如下:
[from 模块名] import [模块 | 类 | 变量 | 函数 | *] [as 别名]
- from 模块名可以不写
- as 别名可以不写
- import 必须写
常用的组合形式如下:
import 模块名
from 模块名 import 类、变量、方法等
from 模块名 import *
import 模块名 as 别名
from 模块名 import 功能名 as 别名
import 模块1, 模块2
在使用时就可以通过以下方式调用模块
模块名.方法名()
import 模块名
语法:import 模块1, 模块2
调用时,需要带上模块名和功能名,且导入模块后,该模块的所有功能都会被导入
import time
time.sleep(5)
与下面的方法导入是一个意义的
from time import *
但是这种的话调用功能就不需要加上模块名了
from time import *
sleep(5)
from 模块名 import 功能名
语法:
from 模块名 import 功能名
肯时只会对某个功能进行导入,要调用该功能时,直接调用该功能名即可:
from time import sleep
sleep(5)
import 模块名 as 别名
当一些模块名字特别长,不便于我们输入时,我们可以对模块名进行别名处理
语法:import 模块名 as 别名
import time as t
t.sleep(5)
对于功能名也可以做别名
如:
from time import sleep as sl
sl(5)
自定义模块
要自定义一个模块,只需要在py文件中正常定义方法和变量即可,这样当其它py文件导入时就可以被访问到对应的功能和变量了
__main__
当py文件被导入那一刻,实际上被调入的py文件就相当于被执行了一遍,但若我在模块中包含了测试用的方法调时,py文件被导入时,测试方法也会被调用,此时我只希望在我执行py文件时,测试方法才会被调用,而导入时不希望测试方法被调用时,我们可以使用系统变量 __main__ 来包含:
if __main__ == "__main__":
test()
test2()
....
__all__
__all__ 变量是用于记录允许引入的方法变量,当我们的py文件中有多个方法,但我不希望py模块中所有的方法都可以被导入时,我们可以使用 __all__ 来声明允许导入的列表
__all__ = ['testA'] # 只允许导出 testA 方法
def testA():
def testB():
此时当导入该py模块的所有方法时,只会导入 testA 方法
from module import *
# 只导入了 testA 方法
当然如果我们手动导入方法,__all__ 就不会生效了,如:
from module import testB
# 依然会调用 testB
自定义 Python 包
从物理上看,包就是一个文件夹,在该文件夹下包含了一个 __init__.py 文件(内容为空的我们不需要理会),该类件夹可用于包含多个模块文件
如果没有 __init__.py 文件时,该文件夹将变回一个普通的文件夹
从逻辑上看,包的本质依然是模块
导入包
方式一:import package.module
- package 指的是该py包的名称
- module 指的是该py包下的模块py文件
方式二:from package import module
- 通过导入包中的模块
方式三:from package.module import method
- 通过导入包模块中的方法功能
__all__
在py 包中,可以在 __init__.py 中定义允许导入的模块
__all__ = ['module1']
当我们导入*时,也只会导入module1
from package import *
# 只导入了 module1
当然,如果我们手动导入 module2 也是可以导入的,__all__ 只应用在 * 引入时才会生效
第三方包
在Python程序中,有许多的第三方包,可以极大的帮助我们提高开发效率
- 科学计算中常用的:numpy包
- 数据分析中常用的:pandas包
- 大数据计算中常用的:pyspark、apache-flink包
- 图形可视化常用的:matplotlib、pyecharts包
- 人工智能常用的:tensorflow包等
安装第三方包
py提供了一个专用于安装包的程序 pip
我们可以通过使用 pip 来安装第三方包:
pip install 包名
pip 网络优化
由于pip是连接的国外网站进行包的下载,所以有的时候会速度非常慢
我们可以通过如下命令,让其连接到国内的网站进行包的安装
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple 包名称
该地址是清华大学提供的一个网站,提供给pip包下载的镜像地址
PyCharm 配置第三方包
在PyCharm 中打开:
双击pip
可以在窗口中搜索需要安装的包


共有 0 条评论