这一篇教程开始,我们一起了解一些Python的内置模块。
内置模块中,往往包含了很多内容。
在接触具体的模块之前,我们先来看一下,怎么知道一个模块中都包含什么?有什么内容可以供我们使用?这些内容又如何使用?
- 使用内置函数dir()查看模块的组成
内置函数dir()可以帮助我们查看一个对象的组成,那么,在Python中万物皆对象,当然也可以使用这个函数查看模块的组成。
示例代码:
print(dir(pprint)) # 显示输出结果为:['PrettyPrinter', '_StringIO', '__all__', '__builtins__', '__cached__', '__doc__',......]
显示输出的结果很长,所以做了省略。
这个结果就是模块中包含的所有特性(函数、类、变量等)全部列出。
但是,并不是这些内容,我们都能够导入使用。
大家应该还记得,特性名称之前带有下划线是表示警告,禁止使用者对这些特性进行操作。
那么,怎么知道哪些特性是允许使用者使用的呢?
- 使用模块特性__all__查看可用的模块内容
如果模块的特性中有一个__all__的特性(不是所有的模块都有,例如math模块就没有这个特性。),我们可以通过这个特性查看模块中所有可用的特性。
通过__all__特性获取的内容是所有可用特性名称的列表。
示例代码:
print(pprint.__all__) # 显示输出结果为:['pprint', 'pformat', 'isreadable', 'isrecursive', 'saferepr', 'PrettyPrinter']
这次显示输出的结果就少了许多,这个列表中的特性,我们都可以调用。
不过,紧接着又面临一个问题,怎么使用?
- 使用内置函数help()查看模块帮助信息
还是以pprint模块举例。
如果想查看模块的帮助信息,我们可以通过语句help(pprint)进行获取,并通过print()函数显示输出获取的结果。
这个结果里面会包含:名称(功能)、描述、类、函数、数据、文件的信息。
不过,这信息太多了,我们可以单独获取模块某一个特性的信息。
以上一段示例代码显示输出结果的第一个列表元素“pprint”为例。
如果要查看某个模块的特性,我们可以在参数中输入“模块.特性”。
提示:把“.”读成“的”试试看,是不是更容易理解?
所以,我们想获取pprint模块中pprint特性的帮助信息,就在参数中输入“pprint.pprint”。
示例代码:
print(help(pprint.pprint)) # help(pprint)能够获取模块所有特性的帮助信息
运行代码之后,会得到下方这些信息。
Help on function pprint in module pprint: # pprint模块中pprint函数的帮助信息
pprint(object, stream=None, indent=1, width=80, depth=None, *, compact=False) # 函数的参数信息
Pretty-print a Python object to a stream [default is sys.stdout]. # 漂亮打印输出一个Python对象到一个流[默认为系统标准输出]
是不是需要一些英文功底?
这是肯定的。
不过,这件事情急不来,学习需要一个过程。
就好像一开始都进不了洞,慢慢的不但能一杆进洞,还能领悟很多花样姿势。(多打台球有益健康)
- 使用__doc__特性查看模块说明文档
除了使用内置函数help()能够查看模块的帮助信息,通过模块的__doc__(前提是有这个特性)也能够查看。
示例代码:
print(pprint.pprint.__doc__)
代码运行结果:
Pretty-print a Python object to a stream [default is sys.stdout].
使用__doc__特性能够查看到模块或模块特性相应的文档,通过内置函数help()获取帮助信息时,文档部分的内容就来自这里。
- 使用__file__特性查看模块所在的位置
除了了解模块的组成与用途,有时候我们还想看看模块中的源代码,从而深入学习或参考。
那么,我们可以通过模块的__file__特性来查看模块所在的目录。
示例代码:
print(pprint.__file__) # 显示输出结果为:C:\Users\Administrator\AppData\Local\Programs\Python\Python36\lib\pprint.py
同样,如果模块有__file__特性,我们可以这样查找,如果没有的话会提示错误。
例如,sys模块就不包含__file__特性,因为这个模块是包含在Python解释器中,而不是某个模块文件中。
AttributeError: module ‘sys’ has no attribute ‘__file__’
特性错误:模块“sys”不包含“__file__”特性。
如果使用的是PyCharm这个集成开发环境,我们可以查看这个模块。
在代码编辑区中先导入模块,然后,在模块名称上点击鼠标右键,选择去往(Go To)选项中的实现(Implementation)选项,就能够打开这个模块文件。
那么,既然能够打开这个模块,它不就应该有这个py文件吗?
大家可以看PyCharm软件的顶部,这里显示了当前模块所在的路径。
并且,在这个路径上,我们可以在模块前方的文件夹名称上点击鼠标右键,选择复制路径(Copy Path)的选项。
然后,在本地资源管理器窗口中粘贴这个路径,打开文件夹,就能够看到当前的模块文件。
不过,虽然我们能够找到这个模块,但是它的里面看不到关键的源代码,这些源代码是融入到Python解释器中的。
本节知识点:
1、查看模块组成
2、查看模块可用特性
3、查看模块帮助信息
4、查看模块文档信息
5、查看模块保存位置
本节英文单词与中文释义:
1、dir(directory):目录结构
2、all:全部
3、help:帮助
4、doc(document):文档
5、stream:流
6、default:默认
7、stdout(standard output ):标准输出
8、copy:复制
9、path:路径
10、sys(system):系统
转载请注明:魔力Python » Python3萌新入门笔记(36)