《Python学习手册 第五版》 -第22章 模块:宏伟蓝图
2021-02-09 16:17
标签:ges 问答 蓝图 交互 hang 选择 展开 推导 重复 前面的章节是围绕函数展开的,接下来的章节会更上一层楼,针对模块展开研究 本章重点内容: 1、什么是模块 2、为什么使用模块 3、如何使用模块:模块的导入和属性 4、模块是如何导入的:import如何工作 5、模块的搜索路径 6、模块的选择 接下来,针对每一个重点展开详细说明 1、什么是模块 模块是最高级别的程序组织单元,它将程序代码和数据封装起来以便再利用,同时提供自包含的命名空间从而避免程序出现变量名冲突,从实际的角度来看,模块往往对应于Python程序文件,每一个文件都是一个模块 2、为什么使用模块 1)代码重用,这个和函数一样,减少代码冗余,重复高效利用代码 2)系统命名空间的划分:一个程序是庞大的,涉及到很多内容,可以通过不同的模块管理,避免命名空间的混乱 3)实现共享的服务和数据:因为重用,而且可以按需使用,实现共享 3、如何使用模块:模块的导入和属性 模块的导入有三种方式 1)import:使用户程序(导入者)以一个整体获取一个模块(这也是我们最经常看到和使用的方式) 2)from:允许用户程序从一个模块文件中获取特定的名称 3)imp.reload:提供了一种在不终止Python程序的情况下重新载入模块文件代码的方法 模块属性的使用 和调用函数内属性一样,通过【.】来使用,只不过前面就是模块的名称,例如 模块名.属性 具体代码示例如下: 创建一个简单的模块b,内容仅是一个简单的函数,把它单独存为一个文件,后缀为.py.然后再创建a文件,a调用b 4、模块是如何导入的:import如何工作 模块的导入,很重要的一点就是【import】,理解了import就理解了模块的导入工作 如果程序是第一次导入模块时,会执行三个步骤,也就是说import语句,依次会执行以下内容 第一:搜索,找到模块文件 这个容易理解,就是你要使用哪个模块,就需要先找到这个模块,就需要先明确模块的名称,然后通过标准搜索路径找到这个模块 第二:编译(可选) 编译成字节码(如果需要的话) 找到需要的模块后,需要编译,也就是需要转换成程序能使用的字节码,之所以说可选,是因为,如果模块之前导入过,已经在内存中,系统判定是最新的后,就不需要再编译 第三:运行,执行模块的代码来创建其定义的对象 编译后,或者找到可用的字节码后,程序会运行字节码,文件中所有的语句从从头到尾依次执行,创建模块内所使用的属性或函数,之后使用时,就可以直接调用了 以上三个步骤,是系统后台自动完成的,所以无法通过代码示例,我们能看到的就是一行import代码 5、模块的搜索路径 三个步骤中,最主要的就是第一个步骤,也就是搜索,知道了模块名称,如何找到模块呢,毕竟模块有很多,代码中也没有看到路径,那系统是通过什么路径自动找到模块的呢? Python的模块搜索路径主要涵盖以下: 1)程序的主目录 Python首先会在主目录内搜索被导入的文件,当在交互式命令行下工作时,主目录就是你当前工作的主目录 2)PYTHONPATH目录(如果设置了的话) 如果你想导入的模块不在主目录,可以通过这个选项进行设定,来指定路径进行搜索 3)标准库目录 这个系统自动设定的,因为基本每个模块都会用到标准模块,所以标准库就是必须的,既然是必须的,就不用单独设定,直接使用即可 4)任何.pth文件中的内容(如果存在的话) 这个不常用,可以看成是PYTHONPATH的替代方案,通过后缀名.pth的文本文件中一行一行的列出目录 5)第三方扩展应用的site-packages主目录 大多数第三方扩展安装在site-packages目录下,所以Python会自动将标准库site-pachages添加到模块搜索路径中 以上5个内容组合起来就变成了sys.path,也就是系统搜索路径;其中第一个、第三个是自动被定义的,也就是系统自动设定的,不用我们调整;第二和第四组件是可以用于扩展路径 我们可以通过sys.path代码来查看当前系统的搜索路径,代码如下: 第一个就是主目录,也就是当前工作目录 6、模块的选择 你可能有一个疑问,如果在多个路径中,有同样的模块名称,系统如何选择呢?这就是选择优先级的问题,系统会依次查看,如果先找到,系统不会再往下寻找,会直接使用 以上,就是本章重点内容的讲解,因为主要是讲解程序运作的逻辑,所以文字偏多,好了,就到这,下章再见! 《Python学习手册 第五版》 每章时间规划及完成进度: 2019.11.25-2019.12.01 第01章,已完成:《Python学习手册 第五版》 -第1章 问答环节 2019.12.02-2019.12.08 第02章,已完成:《Python学习手册 第五版》 -第2章 Python如何运行程序 2019.12.09-2019.12.15 第03章,已完成:《Python学习手册 第五版》 -第3章 你应如何运行Python程序 2019.12.16-2019.12.22 第04章,已完成:《Python学习手册 第五版》 -第4章 介绍Python对象类型 2019.12.23-2019.12.29 第05章,已完成:《Python学习手册 第五版》 -第5章 数值类型 2019.12.30-2020.01.05 第06章,已完成:《Python学习手册 第五版》 -第6章 动态类型 2020.01.06-2020.01.12 第07章,已完成:《Python学习手册 第五版》 -第7章 字符串基础 2020.01.12-2020.01.19 第08章,已完成:《Python学习手册 第五版》 -第8章 列表与字典 2020.01.20-2020.01.26 第09章,已完成:《Python学习手册 第五版》 -第9章 元组、文件与其他核心类型 2020.01.27-2020.02.02 第10章,已完成:《Python学习手册 第五版》 -第10章 Python语句简介 2020.02.03-2020.02.09 第11章,已完成:《Python学习手册 第五版》 -第11章 赋值、表达式和打印 2020.02.10-2020.02.16 第12章,已完成:《Python学习手册 第五版》 -第12章 if测试和语法规则 2020.02.17-2020.02.23 第13章,已完成:《Python学习手册 第五版》 -第13章 while循环和for循环 2020.02.24-2020.03.01 第14章,已完成:《Python学习手册 第五版》 -第14章 迭代和推导 2020.03.02-2020.03.08 第15章,已完成:《Python学习手册 第五版》 -第15章 文档 2020.03.09-2020.03.15 第16章,已完成:《Python学习手册 第五版》 -第16章 函数基础 2020.03.16-2020.03.22 第17章,已完成:《Python学习手册 第五版》 -第17章 作用域 2020.03.23-2020.03.29 第18章,已完成:《Python学习手册 第五版》 -第18章 参数 2020.03.30-2020.04.05 第19章,已完成:《Python学习手册 第五版》 -第19章 函数的高级话题 2020.04.06-2020.04.12 第20章,已完成:《Python学习手册 第五版》 -第20章 推导和生成 2020.04.13-2020.04.19 第21章,已完成:《Python学习手册 第五版》 -第21章 基准测试 2020.04.20-2020.04.26 第22章,已完成 2020.04.27-2020.05.03 第23章,未完成 以下链接,可以供你了解这个学习笔记的所有章节最新进度 《Python学习手册 第五版》 -第22章 模块:宏伟蓝图 标签:ges 问答 蓝图 交互 hang 选择 展开 推导 重复 原文地址:https://www.cnblogs.com/zhangjiyou/p/12749490.html
下一篇:Java-水仙花数
文章标题:《Python学习手册 第五版》 -第22章 模块:宏伟蓝图
文章链接:http://soscw.com/index.php/essay/53162.html