Python标准库的学习准备

Python标准库是Python强大的动力所在,我们已经在前文中有所介绍。由于标准库所涉及的应用很广,所以需要学习一定的背景知识。

硬件原理

这一部份需要了解内存,CPU,磁盘存储以及IO的功能和性能,了解计算机工作的流程,了解指令的概念。这些内容基础而重要。

Python标准库的一部份是为了提高系统的性能(比如mmap),所以有必要了解基本的计算机各个组成部分的性能。

操作系统

在了解操作系统时,下面是重点:

1) 操作系统的进程管理,比如什么是UID, PID, daemon

2) 进程之间的信号通信,比如使用kill传递信号的方式

学习进程相关的内容,是为了方便于学习os包,thread包,multiprocessing包,signal包

3) 文件管理,文件的几种类型。

4) 文件读写(IO)接口

5) 文件的权限以及其它的文件信息(meta data)

6) 常用系统命令以及应用,比如ls, mv, rm, mkdir, chmod, zip, tar..., 

学习文件相关的内容,,是为了学习os包, shutil包中文件管理相关的部分。学习文件接口对于文本输入输出的理解很重要,也会影响到对于socket包, select包概念的理解。此外,python中的归档(archive)和压缩(compress)功能也和操作系统中的类似。

7) Linux shell,比如说file name matching,对于理解glob包等有帮助。如果你对Linux的正则表达(regular expression)有了解的话,python的正则表达的学习会变得比较容易。学习Linux命令行中的参数传递对于理解python标准库中解析命令行的包也是有用的。

网络

Python的一大应用是在网络方面。但Python和标准库只是提供了接口,并不涉及底层。网络知识可以大大降低学习曲线的陡度。

1) TCP/IP的基础的分层架构。这方面的内容太广博了,所以可以有选择地了解骨干知识。

2) 常用的应用层协议,比如http, 以及邮件相关的协议,特别是它们的工作过程。

3) 根据需要,了解html/css/javascript/jQuery/frame等

如果想利用python建服务器,比如在google app engine上,这些知识是需要的。

算法与数据结构

标准库中定义有一些数据对象的封装。因此,你并不需要重头编写它们。相关数据结构的应用需要一些数据结构的知识,比如队列,树等。

标准库中已经实现了许多算法,比如排序等,可以方便的调用。算法的基础知识可以帮助你做决定。

数据库

Python中内置了sqlite3。如果你只需要一个简单的数据库,可以直接从标准库中调用sqlite3。

当使用Python中数据库相关的包时(比如sqlite3),需要对数据库,特别是关系型数据库,有一个基本了解。

加密和文本编码

Python的加密算法同样基于一些经典加密算法,比如MD5,RSA算法。加密的基本知识将很有帮助。

使用非ASCII编码,比如中文时,文本编码的知识很重要。

总结 

Python基本的对象概念和动态类型概念。可以参照快速教程,并尝试阅读更多的资料和源码,来加深对概念的理解。Python标准库学习的难度在于背景知识。一个了解相关背景知识(或者其它语言的库)的程序员,可以在很短的时间内掌握Python基础库。

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

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏京东技术

京东价格保护高并发 | 七步走保证用户体验

2014年加入京东,负责京东财务退款及价格保护研发建设,擅长京东逆向流程场景、金额拆分计算、高并发下网站优化。

14930
来自专栏Java架构沉思录

大家都在说的前后端分离到底是什么?

最近这一段时间由于Nodejs的逐渐成熟和日趋稳定,越来越多的公司中的前端团队开始尝试使用Nodejs来练一下手,尝一尝鲜。

23740
来自专栏Rainbond开源「容器云平台」

云帮社区版4月升级,支持主流Go版本,修复了若干Bug

15140
来自专栏嵌入式程序猿

对Polyspace的几点思考

小猿曾经在公众号里写过《你的代码敢上Polyspace跑吗》的文章,介绍了下这个工具在代码验证中的应用,文章发布后,有几个猿友还给小猿留言咨询应...

41580
来自专栏无题

高并发商品详情页构建

* 主要思路: 1、数据变更还是通过MQ通知; 2、数据异构Worker得到通知,然后按照一些维度进行数据存储,存储到数据异构JIMDB集群(JIMDB:Re...

51060
来自专栏精讲JAVA

大型网站架构技术一览(文末送书)

大型网站的挑战主要来自庞大的用户,高并发的访问和海量数据,任何简单的业务一旦需要处理数以P计的数据和面对数以亿计的用户,问题就会变得棘手。大型网站架构主要就是解...

46280
来自专栏Java职业技术分享

巧用分布式环境下的优雅技术,只有头发少的人才研究过

在分布式数据库系统中,用户感觉不到数据是分布的,即用户不须知道关系是否分割、有无副本、数据存于哪个站点以及事务在哪个站点上执行等。

9200
来自专栏DevOps时代的专栏

秘籍:微服务设计的六脉神剑

介绍 “微服务”是一种新的软件开发模式,它来源于提高软件开发和管理效率的一系列工程实践。敏捷方法、DevOps文化、PaaS、应用容器、CI/CD文化和技术的...

25350
来自专栏开源优测

AutoLine源码分析之十万个为什么

13520
来自专栏SDNLAB

ODL Lithium SR2版本Entity Ownership Service分析及OFplugin规模部署可用预测

家好,我是盛科网络负责sdn研发的张东亚,作为sdn设备的提供商,业余非常关注sdn生态圈的发展,最近抽时间研究了li版本of plugin的代码,记录了一些心...

32750

扫码关注云+社区

领取腾讯云代金券