模块是对于整体py文件的一种新型应用,其可以更方便的提供函数调用的功能,方便今后的代码编译。同时,还有许多第三方库,也是由此而来。今后如果要完成一个大型分工任务,则模块是必须的。今天的笔记主要来学习模块。
一.模块的基本概念
定义:模块(库)是包含变量、语句、函数或类的定义的程序文件,文件的名字就是模块名加上.py扩展名。
广义上,我们所编写的每一个程序都可以被称为模块;狭义上,模块指包含多个可以复用的函数或类。而通常导入使用这些模块的程序,叫做客户端程序。
模块化编程:把计算任务分离成不同模块的程序设计方法,称之为模块化编程( modular programming)。使用模块,可以将计算任务分解为大小合理的子任务,并实现代码的重用功能
模块的优点:
模块的类型:
系统模块、第三方开源模块、自定义模块
二.模块的操作(pip):
python在本身启用时,只加载了一部分模块,其余需要程序员显式的安装加载,(为了减小运行压力),使用sys.modules.items()可以显示索引预加载模块的相关信息。
pip(python install packages)是python官方的包管理器,用来下载第三方库。
下载地址:https://pypi.org(python的官方第三方库的仓库)
pip的常用命令:
命令的使用方法:
打开命令行(cmd)实现。
常用的第三方镜像网站:
(windos系统可能导致有些第三方库下载失败)
语法:pip install -i <国内镜像> <第三方库名称>
镜像网站:
离线安装包:
◆ whl包安装
pip install XlsxWriter-1.0.5-py2.py3-none-any.whl
◆ tar.gz包安装或安装zip包
1. 加压当前文件,并寻找当目录中setup.py文件
2. 在当前目录中的cmd 中执行 python setup.py install
pycharm可以在编译时在线安装模块
常用的第三方模块:
关于模块的操作:
函数调用:
help(math):查看模块中所有的对象列表
dir(math):查看任意模块中所有的对象列表
注:要先import导入库
导入模块的顺序:
1.当前文件夹-》2.sys.path变量指定的文件夹-》3.标准库库目录
导入多个模块的顺序(建议):
1.标准模块-》2.成熟的第三方扩展模块-》3.自己开发的模块
模块搜索路径:
sys模块的sys.path属性返回一个路径列表。
使用import语句导入模块时,系统自动从该列表的路径中搜索模块,如果没有找到,则程序报错。
如果临时加入模块搜索路径:
模块的引入:
1. import moduels(模块名字) 导入整个模块
2. import moduels (模块名字) as XX 导入整个模块并重命名
3. from modules(模块名字) import func(方法或类) 从一个模块里导入某函数方法,#也可重命名: from modules(模块名字) import func(方法)as XX
4. from package.modules import func(方法或类)从一个包的模块里导入 方法,也可以用别名表示,from modules(模块名字) import func(方法)as XX
5. from moduels import * 谨慎使用
pyc文件:
编译后的字节码,导入时比py文件更快。
三.包
将多个模块(或包)放在一个文件夹里,则该文件夹可被称为包。
注:包必须在python文件所在的目录下,且其中必须存在__init__文件(文件内容为空)
导入包中模块:
import 包名.模块名(导入整个模块)
from 包名.模块名 import 函数名(导入函数名)
两包之间互相调用:
默认情况下,两包无法找到对方位置。
如果想要能够找到,需要在包中的__init__文件中,利用sys.path.append("")增加路径,且包中所有文件添加import __init__。
四.模块的制作
所有编译正常的程序都可以作为模块,文件名即为模块名。
__name__模块:
每个python文件都要一个__name__属性。单独运行时,被自动设置为__main__;作为模块被引用时,被自动设置为模块名。
程序员在进行模块的发布前,会提前进行一个测试,以便于确认是否达到效果。而__name__的特殊性质,产生了一种特别的检验方法:
if __name__ == "__main__"
此语句用来测试十分有效。
模块发布(过程图):
END.