Python笔记----包和模块内容

使用包

​ 1.为了更好地管理多个模块源文件,Python提出了包的概念。

  1. 从物理上看,包就是一个文件夹,该文件夹下包含了一个____init____.py文件,该文件夹用于包含多个模块源文件。
  2. 从逻辑上看,包依然是模块。

​ 2.定义包

  1. 创建一个文件夹,该文件夹名字就为该包的包名;
  2. 在文件夹内添加一个____init____.py文件即可。

​ 使用import导入包的本质就是加载并执行该包下的____init____.py文件,然后将整个文件内容赋值给变量。
init.py文件的主要作用是导入该包的其他模块。

查看模块内容
再导入模块后,开发者往往要知道模块具有哪有功能,还希望查看模块中各成员的帮助信息。

1.模块包含什么
使用dir()函数或使用模块本身提供的____all____变量查看模块包含什么。

​ dir()函数用于返回模块或类所包含的全部程序单元(包括变量,函数,类和方法等)。直接使用dir()函数默认会列出模块内所有的程序单元,包括一下划线开头的程序单元,而这些一下划线开头的程序单元并不希望被外界使用’。

​ 可使用列表推导式来过滤掉一下划线开头的程序单元。例如:
[e for e in dir(string) if not e.startswith(’_’)]

Python笔记----包和模块内容

​ 上面粗体字命令使用for-in循环的列表推导式列出了dir(string)返回的所有不以下划线开头的程序单元,他们才是模块希望被其他程序使用的程序单元

​ 此外,还可以使用模块本身提供的____all____变量查看模块包含什么。该变量相当于模块开放的功能接口。例如:

Python笔记----包和模块内容

​ 并不是所有模块都提供____all____变量,不提供____all____变量需要使用列表推导式查看模块内的程序单元。

2.使用help()函数查看文档
可以使用help()函数查看文档的帮助信息。例如:

Python笔记----包和模块内容

​ 使用help()函数之所以能查看到程序单元的帮助信息,其实完全是因为该程序单元本身有文档信息,也就是____doc____属性。使用help()函数查看的其实时程序单元的____doc____属性值。

3.使用____file____属性查看模块的源文件路径
Python笔记----包和模块内容