既然 Python 2.6 已经发布,那么每个程序员都应该了解该语言中当前的哪些模块?
Posted
技术标签:
【中文标题】既然 Python 2.6 已经发布,那么每个程序员都应该了解该语言中当前的哪些模块?【英文标题】:Now that Python 2.6 is out, what modules currently in the language should every programmer know about? 【发布时间】:2010-09-15 04:28:36 【问题描述】:Python 中的许多有用特性都在某种程度上“隐藏”在了模块中。例如,命名元组(Python 2.6 中的新功能)可以在 collections 模块中找到。
Library Documentation page 将为您提供该语言的所有模块,但 Python 新手可能会发现自己说“哦,我不知道我可以使用 这种方式 Python!”除非有经验的开发人员指出该语言的重要特性。
我不是专门寻找 Python 2.6 中的新模块,而是可以在这个最新版本中找到的模块。
【问题讨论】:
对不起,这个问题的措辞很糟糕:“既然 2.6 是我们的,什么是最好的 python 模块(不限于 2.6 的添加)” 尝试更简单的措辞:“什么是最好的蟒蛇模块?”也不是“每个程序员”都使用 python:“每个程序员都应该知道”部分有点偏离。 你对这个问题的阅读也不是很好。我不想知道什么是“最好的模块”。我想知道所有基本模块,那些你应该知道的。至于“每个程序员”的评论,要么你不是很聪明,要么就是心情不好。 【参考方案1】:最令人印象深刻的新模块可能是multiprocessing
模块。首先,因为它可以让您在新进程中执行函数,并且使用与 threading
模块大致相同的 API。但更重要的是,因为它引入了许多用于进程间通信的出色类,例如 Queue
类和 Lock
类,它们的使用就像这些对象在多线程代码中一样,还有一些其他类用于在进程之间共享内存。
您可以在http://docs.python.org/library/multiprocessing.html找到文档
【讨论】:
【参考方案2】:new json
module 对网络程序员来说是一个真正的福音! (在被合并到标准库之前,它被称为simplejson
。)
使用起来非常简单:json.dumps(obj)
将内置类型的 Python 对象编码为 JSON 字符串,而json.loads(string)
将 JSON 字符串解码为 Python 对象。
真的很方便。
【讨论】:
【参考方案3】:可能是PEP 0631 和What's new in 2.6 可以提供答案元素。最后一篇文章介绍了 2008 年 10 月 1 日发布的 Python 2.6 中的新功能。
【讨论】:
【参考方案4】:基本库
对于从另一种语言到 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 中它存在于包中。
【讨论】:
以上是关于既然 Python 2.6 已经发布,那么每个程序员都应该了解该语言中当前的哪些模块?的主要内容,如果未能解决你的问题,请参考以下文章
在 Mac OS 10.6 (python 2.6) 上安装/构建 pymssql