专栏首页Python空间标准库的自我介绍

标准库的自我介绍

本文字数:2094 字 阅读本文大概需要:6 分钟

写在之前

在 Python 被安装的时候,有不少模块随着安装到本地计算机上,这些东西让 Python 拥有了无限生机,能够轻而易举的使用很多模块,这些在安装 Python 时就默认已经安装好的模块统称为「标准库」。

熟悉「标准库」是学习编程必须要做的事,所以今天我们就来学习一下标准库。

引用方式

所有模块都服从下述引用方式,以下是最基本的,也是最常用的,还是可读性非常好的引用方式:

import modulename

例如下面的例子:

>>> import pprint
>>> a = {'name':'rocky','age':'23','like':'python'}
>>> pprint.pprint(a)
{'age': '23', 'like': 'python', 'name': 'rocky'}

在对模块进行说明的过程中,我以 pprint 为例。以 pprint.pprint() 的方式使用模块中的一种方法,这种方法能够让字典格式化输出,更方便易读。

其实在 import 后面,理论上可以跟好多模块名称,但是在实践的时候还是建议一次跟一个好了,太多了影响阅读。关于引用模块的方式,在前面的文章 零基础学习 Python 之模块(一)零基础学习 Python 之模块(二)介绍 import 语句的时候已经讲过了,在这就不罗列了,如果你忘记的话,可以再看看。

在这里我还要补充一点的是,有时候如果你觉得引入的模块或者方法名称有点长,这时可以给它重命名,请看下面的例子:

>>> import pprint as pr
>>> pr.pprint(a)
{'age': '23', 'like': 'python', 'name': 'rocky'}

as 后面的名称是什么你看着写就好,但是不管怎样,一定要让别人看懂,且过一段时间自己回头来看的时候也要看得懂。

深入探究

我们继续以 pprint 为例,继续深入的来研究:

>>> import pprint
>>> dir(pprint)
['PrettyPrinter', '_StringIO', '__all__', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', '_builtin_scalars', '_collections', '_perfcheck', '_recursion', '_safe_key', '_safe_repr', '_safe_tuple', '_sys', '_types', '_wrap_bytes_repr', 'isreadable', 'isrecursive', 'pformat', 'pprint', 're', 'saferepr']

对 dir 我们并不陌生,从结果中可以看到 pprint 的属性和方法,其中有的是以单下划线、双下划线开头的,为了不影响我们的观感,我们先把它们去掉:

>>> [x for x in dir(pprint) if not x.startswith('_')]
['PrettyPrinter', 'isreadable', 'isrecursive', 'pformat', 'pprint', 're', 'saferepr']

针对这几个,为了搞清楚它们的含义,我们可以使用 help() 方法,比如:

>>> help(PrettyPrinter)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'PrettyPrinter' is not defined

上面这样做竟然是错的,大家知道错在什么地方吗?先思考以下,思考完了请继续往下看:

>>> help(pprint.PrettyPrinter)

前面是用 import pprint 引入模块的,鉴于结果太多,我就不放出来了,你可以自己打印一下。我们通过帮助信息,能够查看到该方法的详细说明,可以用这种方法一个个的查看,反正也不多,最好对每个方法都要熟悉。需要注意的是,pprint.PrettyPrinter 是一个类,后面的是方法。

让我们再回过头来看看 dir(pprint) 的结果:

>>> pprint.__all__
['pprint', 'pformat', 'isreadable', 'isrecursive', 'saferepr', 'PrettyPrinter']

这个结果是不是很眼熟?除了 warnings 之外,跟前面通过列表解析式得到的结果一样。其实,当我们使用 from pprint import * 的时候,就是将 __all__ 里面的方法引入。

写在之后

其实,Python 标准库的内容非常多,多的超出你的想象,有专门介绍 Python 标准库的书,就问你怕不怕。

在接下来的几天里,我会把几个经常用的,而且你在学习和工作中也会经常用到的几个介绍一下,一来让你看看标准库是多么强大,二来我们一起学习一下怎么去理解和使用标准库。

如果你觉得本篇文章对你有帮助的话,欢迎点赞,你的支持是我持续输出的动力。

The end。

本文分享自微信公众号 - Python空间(Devtogether),作者:Rocky0429

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-09-08

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Python 格式化字符串,这个方法真的即丝滑又舒服!

    按理说我应该对这种重复性的动作很烦,起初确实是这样,但是现在我乐在其中,为什么呢?肯定不是脑子坏了,因为我最近学会了一个超好用的格式化字符串的方法,那是相当的丝...

    Rocky0429
  • Github 标星 5.6w+,如何用 Python 实现所有算法

    几位印度小哥在 GitHub 上建了一个各种 Python 算法的新手入门大全。从原理到代码,全都给你交代清楚了。为了让新手更加直观的理解,有的部分还配了动图。

    Rocky0429
  • 参数?变量?形参?实参?在 Python 眼里那都不是事。

    函数的参数,我在之前的文章中也提到过,参数这个东西我感觉还是比较有话题的,你可能在某些地方听说过诸如 “形参”,“实参” and so on...那么这些到底是...

    Rocky0429
  • Python强大的自有模块——标准库

      “Python自带‘电池’”,这种说法流传已久。   在Python被安装的时候,就有不少模块也随着安装到本地的计算机上了。这些东西就如同“电力”一样,...

    py3study
  • [816]python之pprint

    pprint提供了以一种“pretty-print”的方式打印出任意python数据结构的模块。当然,如果不是python的基本数据类型,那么这种方式可能加载不...

    周小董
  • Java 面试题 —— 老田的有赞面试经历

    好像是清明节还是五一劳动节来着,我还在睡觉,就接到一面面试官的电话,说现在有时间吗,能够接受下电话面试吗?我勒个去,今天过节、我被电话吵醒的,现在人都没清醒、这...

    芋道源码
  • 中高级技术面试考察过程中的关键点

    曾经根据自己的面试经验写过,这是一种标准化,流程化的方式,用于考察一个人的方方面面,然而,一次面试时间不过短短30,40分钟,在这段时间内,要全面的考察一个人是...

    java达人
  • 入职四个月后,我当了一回面试官,面试了一名二本院校学生,结果。。。。

    1.首先说说简历,好多人都问过我,乔哥,进入bat这样的大厂是不是学历都需要211,985 其实,不是的,这次我面试的这个同学就是二本院校出生,我身边认识的 苦...

    乔戈里
  • 微信调用小程序发票助手

    文章时间:2018年11月13日 11:17:44 实现业务:基于微信内的H5页面,填写发票信息,直接调用微信内部的“我的发票”功能。

    华创信息技术
  • 还记得面试时被算法支配的恐惧吗?

    大多数程序员心里会想"总结的真精辟",当面试到算法时,各种“跪”、“再跪”、“还是跪”......,多少人因为算法而拿不到心仪的offer,算法毁一生啊。

    老孟程序员

扫码关注云+社区

领取腾讯云代金券