Python笔记----包和模块内容
使用包
1.为了更好地管理多个模块源文件,Python提出了包的概念。
- 从物理上看,包就是一个文件夹,该文件夹下包含了一个____init____.py文件,该文件夹用于包含多个模块源文件。
- 从逻辑上看,包依然是模块。
2.定义包
- 创建一个文件夹,该文件夹名字就为该包的包名;
- 在文件夹内添加一个____init____.py文件即可。
使用import导入包的本质就是加载并执行该包下的____init____.py文件,然后将整个文件内容赋值给变量。
init.py文件的主要作用是导入该包的其他模块。
查看模块内容
再导入模块后,开发者往往要知道模块具有哪有功能,还希望查看模块中各成员的帮助信息。
1.模块包含什么
使用dir()函数或使用模块本身提供的____all____变量查看模块包含什么。
dir()函数用于返回模块或类所包含的全部程序单元(包括变量,函数,类和方法等)。直接使用dir()函数默认会列出模块内所有的程序单元,包括一下划线开头的程序单元,而这些一下划线开头的程序单元并不希望被外界使用’。
可使用列表推导式来过滤掉一下划线开头的程序单元。例如:
[e for e in dir(string) if not e.startswith(’_’)]
上面粗体字命令使用for-in循环的列表推导式列出了dir(string)返回的所有不以下划线开头的程序单元,他们才是模块希望被其他程序使用的程序单元
此外,还可以使用模块本身提供的____all____变量查看模块包含什么。该变量相当于模块开放的功能接口。例如:
并不是所有模块都提供____all____变量,不提供____all____变量需要使用列表推导式查看模块内的程序单元。
2.使用help()函数查看文档
可以使用help()函数查看文档的帮助信息。例如:
使用help()函数之所以能查看到程序单元的帮助信息,其实完全是因为该程序单元本身有文档信息,也就是____doc____属性。使用help()函数查看的其实时程序单元的____doc____属性值。
3.使用____file____属性查看模块的源文件路径