Jython 权威指南

Java 平台的 Python

作者Josh Juneau、Jim Baker、Victor Ng、Leo Soto、Frank Wierzbicki
版本大约 1.0,发布于 2010 年 3 月 25 日

本书以开源形式发布,并根据知识共享 3.0 许可协议授权。您可以自由复制、分发、传播和/或改编作品。此许可证基于以下条件

署名

您必须以作者或许可人指定的方式署名作品(但不能以任何暗示他们认可您或您使用作品的方式署名)。

相同方式共享

如果您修改、转换或基于此作品进行创作,您只能在相同、类似或兼容的许可证下分发由此产生的作品。

如果您获得版权所有者的许可,则可以放弃上述任何条件。

许可证不会以任何方式影响以下任何权利

  • 您的合理使用权
  • 作者的道德权利
  • 其他人可能对作品本身或作品的使用方式拥有的权利,例如公开权或隐私权

注意:对于任何再利用或分发,您必须向其他人明确说明此作品的许可条款。最好的方法是直接链接到此页面:http://creativecommons.org/licenses/by-sa/3.0/

封底(Apress 第一版)

Jython 权威指南:Java 平台的 Python

版权所有 © 2010 年 Josh Juneau、Jim Baker、Victor Ng、Leo Soto、Frank Wierzbicki

保留所有权利。未经版权所有者和出版商事先书面许可,不得以任何形式或任何方式(包括影印、录音或任何信息存储和检索系统)复制或传播本作品的任何部分。

ISBN-13(平装本):978-1-4302-2527-0

ISBN-13(电子版):978-1-4302-2528-7

在美国印刷和装订 9 8 7 6 5 4 3 2 1

本书中可能出现商标名称。我们没有使用每个商标名称的商标符号,而是仅以编辑方式使用这些名称,并为商标所有者带来利益,无意侵犯商标。

Java™ 和所有基于 Java 的商标是 Sun Microsystems, Inc. 在美国和其他国家/地区的商标或注册商标。Apress, Inc. 与 Sun Microsystems, Inc. 无关,本书是在未经 Sun Microsystems, Inc. 认可的情况下编写的。

主编:Steve Anglin、Duncan Parkes

技术审阅者:Mark Ramm、Tobias Ivarsson

编辑委员会:Clay Andres、Steve Anglin、Mark Beckner、Ewan Buckingham、Gary Cornell、Jonathan Gennick、Jonathan Hassell、Michelle Lowman、Matthew Moodie、Duncan Parkes、Jeffrey Pepper、Frank Pohlmann、Douglas Pundick、Ben Renow-Clarke、Dominic Shakeshaft、Matt Wade、Tom Welsh

协调编辑:Mary Tobin

文字编辑:Tracy Brown Collins

副制作总监:Kari Brooks-Copony

制造总监:Tom Debolski

由Springer-Verlag New York, Inc. 全球图书贸易发行,地址:233 Spring Street, 6th Floor, New York, NY 10013。电话:1-800-SPRINGER,传真:201-348-4505,电子邮件:orders-ny@springer-sbm.com,或访问 http://www.springeronline.com

有关翻译的信息,请发送电子邮件至 info@apress.com,或访问 http://www.apress.com

Apress 和 ED 图书的朋友可以批量购买,用于学术、企业或促销用途。大多数书籍也提供电子书版本和许可证。有关更多信息,请参考我们的“特殊批量销售 - 电子书许可”网页:http://www.apress.com/info/bulksales

本书中的信息按“原样”提供,不提供任何担保。尽管在准备本书时已采取一切预防措施,但作者或 Apress 对因本书中包含的信息直接或间接造成的任何损失或损害,不承担任何责任。本书可在知识共享署名 - 相同方式共享许可证下在线获取 (http://creativecommons.org/licenses/by-sa/3.0/)。您可以在 http://jythonbook.com 阅读本书,或在 bitbucket 上的图书项目中查看源代码:http://bitbucket.org/javajuneau/jythonbook/

前言(Apress 第一版)

我从 2003 年开始使用 Python,并且出于各种原因爱上了这门语言。Python 基于空格的语法的优雅、精心设计的内置数据类型以及一套精美的库函数。从那时起,许多其他人发现了或重新发现了 Python。在撰写本文时,软件行业正在经历动态类型语言的复兴:Ruby、PHP 和 Python。直到 2004 年我参加了第一次 PyCon,我才意识到 Jython 的存在。人们很高兴能够在 Java 虚拟机 (JVM) 上运行 Python 程序,但又感到惋惜,因为当时 Jython 在支持最新版本的语言方面落后于原生 C Python (CPython) 解释器。Jython 由一系列个人开发者维护,但与 CPython 保持同步的任务对于任何一个人来说都太重了。2005 年 12 月,Frank Wierzbicki 接任 Jython 的首席开发者,并在接下来的几年里成功地培养了一个 Jython 开发者社区。本书的作者是该社区的成员之一。2009 年 6 月,Jython 社区发布了 Jython 2.5,它实现了与 CPython 2.5 相同的语言。这是一个巨大的进步,使 Jython 更加接近与 CPython 的功能一致性,并为赶上 CPython 的其余部分奠定了基础。Jython 2.5 能够运行许多最受欢迎的 Python 包,包括 Django、Pylons 和 SQLAlchemy。Jython 在 Python 世界的优雅、表达性代码和“企业就绪”的 Java 世界之间架起了一座最佳桥梁。在使用 Java 的组织中工作的开发人员现在可以通过在 Jython 上运行 Python 程序来利用 Python 的表达性和简洁性。Jython 提供了 Python 代码与现有 Java 代码之间的轻松集成和互操作性。Jython 也为现有的 Python 程序员提供了一些东西,即访问 Java 虚拟机的非常丰富的生态系统。世界上有大量的 Java 代码。有针对各种任务的库,而且还有更多。Jython 为 Python 程序员提供了一种利用这些库的方法,从而节省了开发和测试时间。在 Jython 上运行的 Web 应用程序还可以利用 Java Web 容器(如 Tomcat 或 GlassFish)的可扩展性优势。Jython 的前景非常光明,本书是希望利用 Jython 所提供优势的人们的及时资源。

Ted Leung

第一部分:Jython 基础:学习语言