- 1、本文档共29页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
模块简介 模块是最高级别的程序组织单元,它将程序代码和数据封装起来以便重用。 从实际角度看,Python的模块一般对应于程序文件(py文件),每个文件都是一个模块,而且模块导入其他模块之后就可以使用导入模块定义的变量名。 模块简介 模块可以由两个语句和一个重要的内置函数进行处理 import 使客户端(导入者)以一个整体获取一个模块 from 允许客户端从一个模块文件中获取特定的变量名 reload 在不终止Python程序情况下,提供一种重新载入模块文件代码的方法 为什么使用模块 简而言之,模块通过使用自包含的变量的包,也就是命名空间提供了将部件组织为系统的简单的方法 在一个模块文件的顶层定义的所有变量名都成为被导入的模块对象的属性 也就是说,在模块导入时,模块文件的全局作用域变成了模块对象的对象命名空间。 为什么使用模块 更确切的说,从抽象的视角来看,模块至少有三个角色: 1、代码重用 模块可以在文件中永久保存代码,可以按照需要任意次重新载入和重新运行模块。除此之外,模块还是定义变量名的空间,被认作是模块的属性,可以被多个外部客户端引用 2、系统命名空间的划分 模块在Python中是最高级别的程序组织单元,从根本上讲,他们不过是变量名的软件包。模块将变量名封装进自包含的软件包,这样就可以避免变量名的冲突。如果不精确导入文件的话,我们不可能看到另一个文件中的变量名。 事实上,所有的一切都“存在于”模块文件中,执行的代码以及创建的对象都毫无疑问的封装在模块之中。正是由于这一点,模块是组织系统组件的天然工具。 为什么使用模块 实现共享服务和数据 从操作的角度看,模块可以方便的实现跨系统共享的组件,而且只需要一个拷贝即可。如,如果需要一个全局对象,这个对象会被一个以上的函数或文件使用,可以将它编写在一个模块中以便能够被多个客户端导入 Python程序架构 实际上,真正的系统通常不仅仅涉及到一个文件,除了简单的脚本之外,程序都会采用多文件系统的形式。即使是编写的单个脚本,也会用到其他人已经写好的外部文件。 如何组织一个程序 一般来讲,一个Python程序包括了多个模块文件。程序是作为一个主体的、顶层的文件来构造,配合有多个支持的文件。 在Python中,顶层文件包含了程序的主要控制流程,是启动应用的文件。模块文件就是工具的库,这些工具用来收集顶层文件使用的组件。顶层文件使用了模块文件中定义的工具,而模块又使用了其他模块所定义的工具。 模块文件通常在运行时不需直接做任何事情,然后,他们定义的工具会在其他文件中使用。在Python中,一个文件通过导入一个模块来获得这个模块定义的工具的访问权,这些工具被认作是模块的属性。 Python程序架构 一个程序是一个模块的系统,它有一个顶层脚本文件a.py(启动后可运行的程序)以及多个模块文件b.py、c.py(用来导入工具库)。顶层脚本和模块都包含了自己编写的Python语句。Python标准库提供了一系列的预先编写好的模块 创建模块 任何一个py文件都是一个模块,因此,我们只要在py文件中定义变量、函数、类即可 一个模块既可以作为主模块被Python运行(启动模块),也可以被其他模块导入。运行此模块和导入模块都是执行模块内的语句,没有任何差别。 创建模块 建立m1.py如下: 运行m1.py,查看结果 导入m1.py,查看结果(在m2.py中) 使用现有的模块 首先,利用import语句导入datetime模块,这句语句告诉Python,我们想要使用这个模块。datetime模块包含了与和时间日期处理相关的类和函数。 当Python执行import datetime语句的时候,它在sys.path变量所列目录中寻找datetime.py模块。如果找到了这个文件,就在内存中生成一个模块对象,并执行模块文件中的语句来填充模块对象的属性;然后在当前模块的名字空间中用datetime名字绑定此对象,我们就可以使用datetime所指向的模块对象的各种工具了。 模块导入 import x as y 将模块x导入,并另起个名字叫y from x import a,b,c 从x模块中导入其中的某些属性a,b,c到本模块的名字空间(即本模块的属性) 查看m3.py 模块导入 模块导入 模块导入只发生一次 模块会在第一次import或from时载入并运行,并且只在第一次时如此。这是故意安排的,因为导入模块的操作开销较大,在默认情况下,Python只保留一个模块文件的一个模块对象在内存中,之后的导入操作都只是将此模块对象绑定到正在执行的模块名字空间中 系统已经导入的全部模块对象放在sys模块的sys.modules属性中,它是一个字典对象 命名空间 Python是面向对象的语言,
文档评论(0)