模块是对于整体py文件的一种新型应用,其可以更方便的提供函数调用的功能,方便今后的代码编译。同时,还有许多第三方库,也是由此而来。今后如果要完成一个大型分工任务,则模块是必须的。今天的笔记主要来学习模块。

一.模块的基本概念

定义:模块(库)是包含变量、语句、函数或类的定义的程序文件,文件的名字就是模块名加上.py扩展名

广义上,我们所编写的每一个程序都可以被称为模块;狭义上,模块指包含多个可以复用的函数或类。而通常导入使用这些模块的程序,叫做客户端程序。

模块化编程:

把计算任务分离成不同模块的程序设计方法,称之为模块化编程( modular programming)。使用模块,可以将计算任务分解为大小合理的子任务,并实现代码的重用功能

模块的优点:


◆ 可以编写大规模的系统程序


◆ 控制程序的复杂度


◆ 实现代码重用


◆增强可维护性



模块的类型:

系统模块、第三方开源模块、自定义模块

二.模块的操作(pip):

python在本身启用时,只加载了一部分模块,其余需要程序员显式的安装加载,(为了减小运行压力),使用sys.modules.items()可以显示索引预加载模块的相关信息。

pip(python install packages)是python官方的包管理器,用来下载第三方库。

下载地址:https://pypi.org(python的官方第三方库的仓库)

pip的常用命令

模块的定义python python中模块的概念_模块的定义python

 命令的使用方法

打开命令行(cmd)实现。

常用的第三方镜像网站

(windos系统可能导致有些第三方库下载失败)

语法pip install -i <国内镜像> <第三方库名称>

镜像网站

模块的定义python python中模块的概念_python_02

 离线安装包:

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可以在编译时在线安装模块

常用的第三方模块

模块的定义python python中模块的概念_学习_03

 关于模块的操作

函数调用:

help(math):查看模块中所有的对象列表

dir(math):查看任意模块中所有的对象列表

注:要先import导入库

导入模块的顺序

1.当前文件夹-》2.sys.path变量指定的文件夹-》3.标准库库目录

导入多个模块的顺序(建议)

1.标准模块-》2.成熟的第三方扩展模块-》3.自己开发的模块

模块搜索路径

sys模块的sys.path属性返回一个路径列表

使用import语句导入模块时,系统自动从该列表的路径中搜索模块,如果没有找到,则程序报错。

如果临时加入模块搜索路径:

模块的定义python python中模块的概念_python_04

 模块的引入:

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__"

此语句用来测试十分有效。

模块发布(过程图):

模块的定义python python中模块的概念_pip_05

 

模块的定义python python中模块的概念_pip_06

模块的定义python python中模块的概念_pip_07

 

END.