软件编程思想-12

上传人:无*** 文档编号:253322151 上传时间:2024-12-11 格式:PPT 页数:26 大小:353.50KB
收藏 版权申诉 举报 下载
软件编程思想-12_第1页
第1页 / 共26页
软件编程思想-12_第2页
第2页 / 共26页
软件编程思想-12_第3页
第3页 / 共26页
资源描述:

《软件编程思想-12》由会员分享,可在线阅读,更多相关《软件编程思想-12(26页珍藏版)》请在装配图网上搜索。

1、单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,第,12,章 模块,模块概述,模块,和文件,命名,空间,导,入模块,导,入模块属性,模块,内建函数包,模块,的其他特性,什么,是模块,当,代码量变得相当大的时候,把,代码分成,一些,有组织的代码,段。这些,代码片段相互间有一定的联系,可能是一,个包含,数据成员和方法的类,也可能是一组相关但彼此独立的操作函数。,这些,代码段是共享的,,允许,调入,一个模块,实现,代码重用,.,这个把其他模块中属性附加到你的模块中的

2、操作叫做导入,(import),。那些自我包含并且有组织的,代码,片断就是模块,(module),。,模块,是按照逻辑来组织,Python,代码的,方法;文件是,物理层上组织模块的方法,。,模块的文件名就是,模块,的名字加上扩展名,.py,一个名称空间就是一个从名称到,对象的,关系映射集合,。,string,模块中的,atoi(),函数就是,string.atoi(),。,通过句点属性标识指定了各自的名称空间,-,防止了名称冲突的发生。,搜索路径和,路径搜索,路径搜索,:,指查找某个文件的操作,搜索路径,:,去,查找一组目录。,模块的导入需要一个,叫做,“,路径搜索,”,的,过程。即在,文件系

3、统,“,预定,义,区域,”,中查找文件。,import xxx,Traceback(innermost last):,File,line 1,in?,ImportError:No module named xxx,默认搜索,路径,sys.path,/usr/local/lib/python2.x/,/usr/local/lib/python2.x/plat-sunos5,/usr/local/lib/python2.x/lib-tk,/usr/local/lib/python2.x/lib-dynload,/,usr/local/lib/Python2.x/site-packages,sys.

4、path.append(/home/wesc/py/lib),名称,空间,名称空间是名称,(,标识符,),到对象的映射,。,向,名称空间添加名称的操作过程涉及到绑定标识符,到指定,对象的操作,(,以及给该对象的引用计数加,1,),局部,名称空间,全局名称空间和内建名称,空间,名称查找,确定作用域,覆盖,名称查询,.,访问一个,属性时,解释器必须在三个名称空间中的一个找到它。首先从局部名称空间开始,如果没有找到,解释器,将继续查找全局名称空间,.,如果这也失败了,它将在内建名称空间里查找,。,foo,Traceback(innermost last):File,line 1,in?,NameEr

5、ror:foo,遮蔽效应。,局部,名称空间中找到的名字会隐藏,全局,或内建名称空间的对应对象。这就相当于,覆盖,了那个全局变量。,遮蔽效应,def foo():,print ncalling foo().,bar=200,print in foo(),bar is,bar,bar=100,print in _main_,bar is,bar,foo,(),in,_main_,bar is 100,calling foo().,in foo(),bar is 200,无限制的名称,空间,可以在任何需要放置数据的地方获得一个名称空间,。,def foo():,pass,foo._doc_=Oops

6、,forgot to add doc str above!,foo.version=0.2,导入,模块,import,module1,import module2,import module1,module2,.moduleN,推荐,顺序,:,Python,标准库模块,Python,第三方模块,应用程序自定义模块,多行导,入,从一个模块导入许多属性时,from,Tkinter import Tk,Frame,Button,Entry,Canvas,Text,LEFT,DISABLED,NORMAL,RIDGE,END,多行的,from-import,语句,from Tkinter import

7、 Tk,Frame,Button,Entry,Canvas,Text,from Tkinter import LEFT,DISABLED,NORMAL,RIDGE,END,扩展的,import,语句,(as,),:使用,自己想要的名字替换模块的原始名称,。,import longmodulename,short=longmodulename,del,longmodulename,from,cgi import FieldStorage,.,可以替换为,.,from,cgi import FieldStorage as form,模块导入的,特性,载入时执行,模块:,加载模块会导致这个模块,被,

8、“,执行,”,。也就是,被导入模块的顶层代码将直接被执行,。包括,设定全局变量以及类和函数的声明,。,导入,(import),和加载,(load,),:,一个模块只被加载一次,无论它被导入多少次。这可以阻止多重导入时代码被多次执行。,导入到当前名称空间的,名称,from-import,把名字导入当前的名称空间里去,不需要使用属性,/,句点属性,标识来访问模块的标识符。例如,模块,module,中的,var,名字被,导,入,:,from module import,var,限制使用,from module import*,被导入到导入者作用域的,名字,导致,覆盖一,个已经存在的具有相同名字的对象

9、。而且对这些变量的改变只影响它的局部拷贝而不是所导入,模块的,原始名称空间,。,#,imptee.py#,#,foo=abc,def show():,print foo from imptee:,foo,#,impter.py#,#,from imptee import foo,show,show(),foo=123,print foo from impter:,foo,show(),foo from imptee:abc,foo from impter:123,foo from imptee:abc,#,#impter.py#,#,import imptee,imptee.show(),im

10、ptee.foo=123,print foo from impter:,imptee.foo,imptee.show,(),foo from imptee:abc,foo from impter:123,foo from imptee:123,从,ZIP,文件中导入,模块:,如果搜索,路径中存在,一个,包含,Python,模块的,.zip,文件,导入时会把,ZIP,文件当作目录,处理,在文件中搜索模块,。,也可以为,.zip,文件加入特定的,(,子,),目录,例如,/tmp/yolk.zip/lib,只会从,yolk,归,档的,lib/,子目录下导入。,_import,_(),_import_

11、(module_name,globals,locals,fromlist,),module_name,变量是要导入模块的名称,globals,是包含当前全局符号表的名字的字典,locals,是包含局部符号表的名字的字典,fromlist,是一个使用,from-import,语句所,导入符号,的列表。,sys=_import_(sys),def foo():,aString,=bar,anInt,=42,print,foo()s globals:,globals().keys(),print,foo()s locals:,locals().keys(),foo()s globals:_doc_,

12、foo,_name_,_builtins_,foo()s locals:anInt,aString,包:,一,个有层次的文件目录结构,它定义了一个由模块和子包组成的,Python,应用程序,执行环境,为平坦的名称空间加入有层次的组织结构,允许程序员把有联系的模块组合到一起,允许分发者使用目录结构而不是一大堆混乱的文件,帮助解决有冲突的模块名称,包,目录,结构,Phone/,_,init_.py,common_util.py,Mobile,/,_,init_.py,Analog.py,igital.py,import Phone.Mobile.Analog,Phone.Mobile.Analog

13、.dial(),绝对导,入,import,Phone.Mobile.Analog,相对导,入,from Phone.Mobile.Analog import dial,from.Analog import dial,mon_util import setup,from.Fax import G3.dial.,自动载入的模块,sys.modules,变量包含一个由当前载入,(,完整且成功导入,),到解释器的模块组成的字典,模块名作,为键,它们的位置作为值,。,import sys,sys.modules.keys(),阻止属性导,入:,以给你不想导入的,属性,名称加上一个下划线,(_),导入循环,omh4cli.py,from cli4vof import cli4vof,def,cli_util():,pass,def,omh4cli():,cli4vof(),c,li4vof.py,import omh4cli,def cli4vof():,omh4cli.cli_util,(),def cli4vof():,import omh4cli,omh4cli.cli_util(),

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

相关资源

更多
正为您匹配相似的精品文档
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  sobing.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!