《Python学习手册 第五版》 -第25章 高级模块话题

本章继续展开模块的内容讲解,相对来说会偏向更高级的话题

本章重点内容:

1、模块中的数据隐藏

2、混合使用模式:__name__和__main__

3、修改模块搜索路径

4、import语句和from语句的as扩展

接下来,针对以上重点内容,进行详细的说明,如下:

1、模块中的数据隐藏

在模块的内容中,通过给名称前面增加下划线,可以实现隐藏的效果,这是对from语句来说的,具体代码示例如下:

先创建一个简单的模块,如下内容:

 再编写一个程序,导入该模块,如下,你会发现带下划线的属性是不用使用的

 但是这种方式对import是没有效果的,import是可以使用下划线的变量,具体代码如下:

 隐藏数据的另一种方式,可以通过指定一个变量__all__的内容,来规定from可以导入那些内容

首先,重新创建一个模块,内容和上面模块内容一样,但是增加一个__all__的变量,具体代码如下:

重新创建一个程序,导入该模块,查看其中的属性,具体代码如下:

 你会发现,能使用的属性,就是在__all__变量中指定的属性,所以通过指定,可以实现隐藏数据的效果

同样,这个隐藏的方式,对import是无效的,你可以自己试一下

2、混合使用模式:__name__和__main__

这个模式,可以允许你把文件作为模块导入,又可以把它当做独立程序的形式允许,

每一个模块都有一个名为__name__的内置属性,有以下特点:

如果文件作为顶层程序文件执行,在启动时__name__就会被设置为字符串“__main__”

如果文件被导入,__name__就会改设成客户程序所了解的模块名

通过以下代码示例会更好理解:

首先创建一个文件,代码如下:

 然后单独允许这个程序,如下:

 单独允许的时候是会调用tester函数的,这个时候就会打印字符串

如果导入,则不会自动打印,需要自动调用,如下:

 这个有什么好处?可以编写文件的自我测试功能,如果文件单独允许,可以自动测试自己的运行,如果被导入使用,就不用自动测试,也能避免把测试信息带入其他程序中

3、修改模块搜索路径

前面有讲过,python程序是通过路径来搜索调用模块和数据库的,可以查看当前环境下的路径:代码示例如下:

需要先导入sys模块

 我们可以直接对路径进行修改:

可以增加路径:增加 C:\Users\Friend\LearningPython\LearningPython-24章

 你会发现增加在了最后,如果你想从前面插入也可以,

 4、import语句和from语句的as扩展

前面讲过。import导入的时候,使用其中的属性需要通过模块名,如果模块名很长的话就很麻烦,所以系统运行可以自定义模块的名称

一般我们是这样导入的:

可以通过as重新命名:

 from语句的使用也是一样的,同样可以用as命名,以便自己使用方便

以上就是本章讲解的内容,下章见!(下章就会进入Python学习手册的【下册】,开启新世界)

《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章,已完成 :《Python学习手册 第五版》 -第22章 模块:宏伟蓝图

2020.04.27-2020.05.03 第23章,已完成:《Python学习手册 第五版》 -第23章 模块代码编写基础

2020.05.04-2020.05.10 第24章,已完成:《Python学习手册 第五版》 -第24章 模块包

2020.05.11-2020.05.17 第25章,已完成

2020.05.18-2020.24.10 第26章,未完成

2020.05.25-2020.05.31 第27章,未完成

以下链接,可以供你了解这个学习笔记的所有章节最新进度

自学笔记系列:《Python学习手册 第五版》 -写在开始之前

原文地址:https://www.cnblogs.com/zhangjiyou/p/12776676.html