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基础库。