1.有些情况下,使用单独的一条语句导入包中的所有模块会带来方便,为此在__init__.py文件中加入__all__=["",""]包含模块的名字。同理要想对导入模块中所有函数叶可以添加__all__选项,精确控制导入的函数有哪些。
2.任何模块被导入后,Python都将为该模块创建一个名为__name__的变量,并将该模块的名称存储于该变量中。但是在我们运行其代码时,python会把变量命名为"__name__",因为模块中用了doctest模块,doctest.testmod()函数尝试执行docstring中的函数,并且在运行时,只在发生错误时,才打印异常信息。要想打印更详细信息可以使用-v 参数。
3.对于查看命令:python -c "import Music",如果这一命令产生异常,就说明尚无模块或顶级目录使用该名称。
4.python 标准库概览:
(1)字符串处理:String(提供了一些有用的常量)、textwrap(用于最小化缩排),Struct(str,int等与二进制字节之间的转换),difflib(对序列进行比较),re(正则表达式),io.StringIO(提供了一种类似与字符串的对象,其行为类似于内存中的文本文件)
(2)命令行程序设计:optparse()和getopt()模块,用于解析命令行参数和设计实现参数
(3)数学与数字:decimal.Decimal和fractions.Fraction模块,NumPy包,math,cmath,random
(4)时间与日期:calendar,time,datetime
(5)算法与组合数据类型:bisect模块(处理有序序列),heapq模块(将序列转化为堆),collections.deque(在开始或结尾添加数据快),array.array提供了序列类型,以非常节省空间的方式存储字符等。
(6)文件格式、编码与数据持久性:读取不同文件格式:base64,quopri,uu,xdrlib;读取不同格式的存档文件:bz2,gzip,tarfile,zipfile;处理音频格式数据:wave,aifc,audioop,sndhdr;处理ini文件:configparser;处理csv格式文件:csv模块;关于磁盘操作:pickle(向磁盘中存储或取回任意python对象),shelve(处理DBM文件,类似字典,其键为字符串,值为任意类型对象)
(7)文件目录与进程处理:Shutil模块(处理文件与目录),tempfile(处理临时文件和目录),filecmp可以对文件进行比较,subprocess(对其他程序的调度),multiprocessing(可以替代多进程),os(提供了操作系统功能的接口,主要用于和操作系统进行交互)
(8)网络与Internet程序设计:socket模块,ssl模块,socketserver模块,asynchat模块,asyncore模块,http.cookies,http.cookiejar模块,http.client模块,urllib模块,xmlrpc.clientxmlrpc.server模块,ftplib,nntplib模块,telnetlib,smtpd模块等;
(9)XML:包括两个包:xml,lxml
(10):其他有用的模块:logging模块,unitest模块,threading模块,bytes模块。