Python程序设计第5章-模块和包课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《Python程序设计第5章-模块和包课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Python 程序设计 模块 课件
- 资源描述:
-
1、2022-6-9第第5章章 模块和包模块和包主 讲 人:目录目录2022-6-921.为什么使用模块2.模块的创建与使用3.包导入实例2022-6-9概述概述本章要解决的问题如下: 什么是模块 为什么使用模块 如何使用模块 包以及实例2022-6-91.为什么使用模块1.1 为什么使用模块 首先,提高了代码的可维护 其次,提高了代码的可重用性 最后,避免了函数名和变量名冲突2022-6-91.为什么使用模块1.2 模块角色从抽象的视角来看,模块至少有三个角色 代码的重用 系统命名空间的划分 服务和数据的共享目录目录2022-6-921.为什么使用模块2.模块的创建与使用3.包导入实例2022-
2、6-92.模块的创建与使用2.1Python程序架构1Python程序架构实例图2022-6-92.模块的创建与使用假设上图中的文件b.py定义了一个名为spam的函数,如下所示:def spam(text): print(text,spam)现在,假设a .py想要使用spam,为了实现这个目标,a.py中包含如下Python语句:import bb.spam(gumby)2022-6-92.模块的创建与使用2.1Python程序架构2模块 程序和模块:Python中,程序是作为一个主体的、顶层的文件来构造的,配合零个或多个支持文件,这些支持文件都可以称作模块。 顶层文件:包含了程序的主要的
3、控制流程,即需要运行来启动应用的文件。2022-6-92.模块的创建与使用2.1Python程序架构2模块 模块文件:可看作是工具的仓库,这些仓库是用来收集顶层文件(或其他可能的地方)使用的组件。 顶层文件与模块文件:顶层文件使用了在模块文件中定义的工具,这些模块文件也使用了其他模块所定义的工具。2022-6-92.模块的创建与使用2.1Python程序架构 模块的执行环境:模块包含变量、函数、类以及其他的模块(如果导入的话),而函数也有自己的本地变量。右图右图描述了模块内的情况以及与其他模块的交互。模块构成及工作原理图2022-6-92.模块的创建与使用2.1Python程序架构 模块间的关
4、系:模块可以被导入,但模块也会导入和使用其他模块,这些模块可以用Python或其他语言写成。2022-6-92.模块的创建与使用2.1Python程序架构3模块导入定义:一个文件可通过加载一个模块(文件),从而读取这个模块(文件)的内容,即导入。(1)模块导入的三种方式import Xfrom X import *from X import a, b, c2022-6-92.模块的创建与使用2.1Python程序架构3模块导入(2)导入模块时,Python都做了哪些事情?2022-6-92.模块的创建与使用2.1Python程序架构3模块导入(3)导入模块时的路径搜索顺序。 程序的主目录:即程
5、序(顶层)文件所在的目录,而非启动程序所在的目录(当前工作目录。 环境变量(PYTHONPATH)目录。 标准链接库目录。 任何.pth文件的内容(如果存在的话),在安装目录下找到该文件,以行的形式加入所需要的目录即可。2022-6-92.模块的创建与使用2.2模块搜索路径1模块搜索路径2022-6-92.模块的创建与使用2.2模块搜索路径1模块搜索路径sys.path的初始值来自于以下地方。 包含脚本的当前路径。 PYTHONPATH。 默认安装路径。 编译过的Python文件(.pyc文件)。 built-in模块。2022-6-92.模块的创建与使用2.2模块搜索路径2配置搜索路径 方法
6、一:添加环境变量PYTHONPATH。python会添加此路径下的模块,在.bashrc文件(这个文件主要保存一些个性化设置,如命令别名,路径等)中添加如下类似行。export PYTHONPATH=$PYTHONPATH:/usr/local/lib/python3.0/site-packages2022-6-92.模块的创建与使用2.2模块搜索路径 方法二:在包内添加。在site-packages添加一个路径文件,如mypkpath.pth,必须以.pth为后缀,写上你要加入的模块文件所在的目录名称。 windows c:python3.0site-packages linux(ubunt
7、u) /usr/local/lib/python3.0/dist-packages linux(redhat) /usr/lib/python3.0/site-packages2022-6-92.模块的创建与使用2.2模块搜索路径 方法三:函数添加。sys.path.append()函数添加搜索路径,参数值即为要添加的路径。 import sys 查看sys.path 添加sys.path.append(c:)2022-6-92.模块的创建与使用2.3模块导入语句1import语句 import导入为绝对导入。 import 只能导入模块,不能导入模块中的对象(类、函数、变量等)2022-6-
8、92.模块的创建与使用2.3模块导入语句2嵌套import(1)顺序嵌套例如:本模块导入 A 模块(import A),A 中又 import B,B 模块还可以 import 其他模块。2022-6-92.模块的创建与使用2.3模块导入语句2嵌套import(2)循环嵌套,程序如下:#A.py from B import Dclass C:pass文件 B.py from A import Cclass D:pass为什么执行A的时候不能加载D呢?2022-6-92.模块的创建与使用2.3模块导入语句如果将 A.py 改为:import B就可以了。这是怎么回事呢?这跟Python内部 im
9、port 的机制是有关的,具体到 from B import D,Python 内部会分成以下几个步骤(具体如右图所示)。2022-6-92.模块的创建与使用2.3模块导入语句这个例子的执行顺序如下(具体如右图所示)。2022-6-92.模块的创建与使用2.3模块导入语句3from语句 因为from会把变量名复制到另外一个作用域,所以它就可以直接在脚本中使用复制后的变量名,而不需要通过模块(例如printer)。 from module1 import printer #复制一个变量 printer(Hello world!) 2022-6-92.模块的创建与使用2.3模块导入语句4from
10、*语句 当使用from *时,会取得模块顶层所有赋了值的变量名。在脚本中就可以直接使用得到的变量名printer,而不需要通过模块名。 from module1 import * #复制所有变量 print(Hello world!) Hello world! 2022-6-92.模块的创建与使用2.3模块导入语句5导入只发生一次 模块会在第一次import或from时载入并执行,并且只在第一次如此。2022-6-92.模块的创建与使用2.3模块导入语句6import和from是赋值语句(1)from将一个或多个变量名赋值给另一个模块中同名的对象,例子如下:x=1y=1,2%python fr
展开阅读全文