本章继续展开模块的内容讲解,相对来说会偏向更高级的话题
本章重点内容:
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章,未完成
以下链接,可以供你了解这个学习笔记的所有章节最新进度