Python 中的许多有用的特性都有些“隐藏”在模块中。例如,命名元组(Python 2.6中的新功能)可以在collections模块中找到。
图书馆文档页面将为您提供该语言的所有模块,但 Python 新手可能会发现自己说“哦,我不知道我可以使用 Python 以这种方式完成它!” 除非有经验的开发人员指出语言中的重要特性。
我并不是专门寻找 Python 2.6 中的新模块,而是在这个最新版本中可以找到的模块。
Python 中的许多有用的特性都有些“隐藏”在模块中。例如,命名元组(Python 2.6中的新功能)可以在collections模块中找到。
图书馆文档页面将为您提供该语言的所有模块,但 Python 新手可能会发现自己说“哦,我不知道我可以使用 Python 以这种方式完成它!” 除非有经验的开发人员指出语言中的重要特性。
我并不是专门寻找 Python 2.6 中的新模块,而是在这个最新版本中可以找到的模块。
最令人印象深刻的新模块可能是multiprocessing
模块。首先是因为它允许您在新进程中执行函数,并且使用与threading
模块大致相同的 API。但更重要的是,因为它引入了许多用于进程之间通信的优秀类,例如一个Queue
类和一个Lock
类,它们的使用就像这些对象在多线程代码中一样,以及其他一些用于在进程之间共享内存的类。
新模块对网络程序员来说是一个真正的福音!!json
(它simplejson
在被合并到标准库之前就是众所周知的。)
它非常易于使用:json.dumps(obj)
将内置类型的 Python 对象编码为 JSON 字符串,同时json.loads(string)
将 JSON 字符串解码为 Python 对象。
真的很方便。
基本库
对于从另一种语言到 Python 的经验丰富的程序员来说,主要挑战是弄清楚一种语言如何映射到另一种语言。以下是一些基本库以及它们与 Java 等价物的关系。
os, os.path
具有 java.io.File、java.lang.Process 等功能。但更干净、更复杂,带有 Unix 风格。使用 os.path 而不是 os 以获得更高级别的功能。
sys
操作 sys.path(类似于类路径),注册退出处理程序(如在 java Runtime 对象中),并访问标准 I/O 流,如在 java.lang.System 中。
unittest
非常相似(并且基于)jUnit,带有测试装置和可运行的线束。
logging
功能几乎与带有日志级别和记录器的 log4j 相同。(日志也在标准 java.util.Logging 库中)
datetime
允许解析和格式化日期和时间,如 java.text.DateFormat、java.util.Date 和相关。
ConfigParser
允许在 java 属性文件中进行持久配置(但也允许嵌套)。当您不希望 XML 或数据库后端的复杂性时使用它。
socket, urllib
与 java.net 中的功能类似,用于处理套接字或通过 URL/URI 检索内容。
另外,请记住,许多基本功能,例如读取文件和使用集合,都在核心 python 语言中,而在 Java 中它存在于包中。