Python3 模块组成/可用内容/帮助介绍和示例

Python 投稿 36000 0 评论

以下主要是针对Python3中模块组成、模块可用内容、模块帮助介绍和示例。

内置模块中,往往包含了很多内容。

在接触具体的模块之前,我们先来看一下,怎么知道一个模块中都包含什么?有什么内容可以供我们使用?这些内容又如何使用?

  • 使用内置函数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解释器中的。

编程笔记 » Python3 模块组成/可用内容/帮助介绍和示例

赞同 (48) or 分享 (0)
游客 发表我的评论   换个身份
取消评论

表情
(0)个小伙伴在吐槽