| | | | | |
可爱的 Python:连接 XML 和 Python 介绍 Python 的 XML 工具 开始在 Python 中使用 XML 的一个主要方面是挑选出所有可用模块的可比性能力。在他的新 Python 专栏“可爱的 Python”的第一部分中,David Mertz 简要描述了最流行和实用的 XML 相关的 Python 模块,并为您指出可以下载的单独模块以及阅读的参考资料。本文将帮助您确定哪些模块最适合特定任务。 | | | | 2000年10月19日 | |
|
可爱的 Python:DOM 的动态性近观 Python 的 xml.dom 模块 本文中,David Mertz 更为详细地说明了使用 Python 的高级 xml.dom 模块,而 Python 已在上一篇专栏文章中讨论过了。通过说明代码样本以及解释如何编码加到完整 XML 文档处理系统中的元素来说明如何使用 xml.dom。 | | | | 2000年11月23日 | |
|
可爱的 Python:Python 中的 TK编程 David Mertz 用源代码样本以及详细的说明介绍了 TK 和Tkinter 封装器(Python 的 GUI库)。为了更便于操作,他演示了曾在以前很多文章中使用的 Txt2Html前端程序的 GUI移植示例。当然,他认为您会定期阅读其专栏。:) | | | | 2000年12月1日 | |
|
可爱的 Python:我的第一个基于 Web 的过滤代理 使用 Txt2Html 将文本转换成 HTML 本文介绍了 Txt2Html,由 David 创建的公共域工作项目,用于说明 Python 的编程技巧。Txt2Html 是 “基于 Web 的过滤代理”-- 一种替用户读取基于 Web 的文档,然后将修改过的页面显示到用户浏览器的程 序。为了使这成为可能,Txt2Html 以 CGI 程序的形式运行,查询外部 Web 资源的信息,并利用规则表达式。 David 将为您逐步解释、说明和演示这些多种用途的子任务。 | | | | 2001年1月2日 | |
|
可爱的 Python:使用状态机 Python 中的算法和编程方法 状态机从理论上说是几乎与计算机和编程相关的每件事的基础。从实用角度来看,状态机还有助于解决许 多常见问题(特别适用于 Python 程序员)。本文中,David Mertz 讨论了何时以及如何使用 Python 编码状 态机的实际例子。 | | | | 2001年1月2日 | |
|
可爱的 Python:JPython 和 Python for .NET 内幕采访创始人 David Mertz 采访了 JPython 和 Python for .NET 的开发者 Mark Hammond、Finn Bock 和 Barry Warsaw。他从 Mark 那里了解到一些有关微软开发的最新独家新闻内幕(当然所有内容都在保密合同限制内),并从 Finn 和 Barry 那里了解到有关 JPython 和他们将要发布的 Jython 项目的一些信息。 | | | | 2001年1月15日 | |
|
可爱的 Python:Curses 编程 给初学者的提示 某一类 Python 应用程序最好使用交互式用户界面,这样可以消除图形环境的系统开销或复杂性。交互式文 本模式程序(在 Linux/UNIX 中),例如封装在 Python 的标准 curses 模块中的ncurses 库,正是您所需要的。 本文中,David Mertz 讨论了在 Python 中 curses 的用法。他使用从前端到 Txt2Html 程序的样本源代码阐述了 curses 环境。 | | | | 2001年1月22日 | |
|
可爱的 Python:Python 中的文本处理 给初学者的提示 与其它几种流行的脚本语言一样,Python 是一种用于浏览和处理文本数据的优秀工具。本文为 Python 的初学者概述了 Python 的文 本处理工具。文章说明了规则表达式的一些常规概念,并提供了处理文本时,什么情况下应使用(或不使用)规则表达式的建议。 | | | | 2001年2月15日 | |
|
可爱的 Python:动态重新装入 在长期运行的进程中动态重新装入模块 与大多数其它编程语言相比,Python 的一大优点就是其强大的运行时动态能力。感谢方便的 reload() 函数,我们可以编写持续运行的程 序,但它可以在进程运行期间装入经过修改的组件(对于那些持续运行时间至关重要的服务来说, 相当有用)。b本文在 David 以前的文 章中讨论的对 Txt2Html 前端的某些增强基础上,说明了运行时程序修改。特别是,我们的样本程序将对因特网上 Txt2Html 转换库的新 版本进行后台检查, 并下载和重新装入所需的新版本,无需用户手工介入。 | | | | 2001年2月15日 | |
|
可爱的 Python:Python 实现内幕 采访 Vyper 和 Stackless Python 创始人 当大多数程序员谈到 "Python" 时,他们可能想到的是有时称为 "CPython"(因为它是以 C 实现的)的这种特定实 现。但 Python 作为一种语言规范,已随着 Guido van Rossum 的参考实现的演变而实现了多次。本文包含对两种非标 准 Python -- Stackless 和 Vyper -- 创始人带有注释的采访。 | | | | 2001年2月15日 | |
|
wxPython 入门 您可以在几分钟内编写一段 Python脚本和让桌面拥有令人难以置信的相当漂亮的 GUI应用程序。这篇文章向您展示如何使用一 Python-著称的 GUI 库wxPython,来做到这一点的。向您的朋友和邻居介绍! | | | | 2001年3月1日 | |
|
细述 wxWindows -- 可移植 C++ 和 Python 工具箱简介 Markus Neifer 概述了有关 wxWindows -- 一种可移植 C++ 和 Python 工具箱。他讨论了库的体系结构,讲述了如何安排多平台文件处理和目录分隔字符,并谈到 wxHTML、图像文件格式和 Unicode。还介绍了一些有用的 wxWindows 调试技巧,以及如何将 MFC 应用程序移植到 Linux。 | | | | 2001年4月29日 | |
|
可爱的 Python:获得版本 2.0 Python 程序员最近随着版本 2.0 的发行获得了一个崭新的工具。Python 2.0 是在以前 Python 版本的长处上构建的,同时添加了许多新的便利和能力。本文提供了作者对 Python 最新版本的印象,以及有关如何有效利用它的一些技巧。 | | | | 2001年5月29日 | |
|
可爱的 Python:Python 中的函数编程 尽管用户通常将 Python 看作是一个过程性和面向对象语言,但它实际上包含了实现完整函数编程所需的每样事物。本文讨论了函数编程的常规概念,并说明了在 Python 中实现函数技术的方法。 | | | | 2001年5月29日 | |
|
可爱的 Python: 重温 Python 的 XML 工具 David Mertz 创作的可爱的 Python的第一、第二部分概述了在 Python 中使用XML。然而,在那些最初的文章出现后,Python 中的 XML工具有了很大的发展。不幸的是,这些改进中的大多数并不向后兼容。在这个特别部分中,重温了作者先前对XML 工具的讨论,并提供最新的代码示例。 | | | | 2001年6月1日 | |
|
可爱的 Python:在 Python 下开发全文索引 随着信息量的增长,高效地定位特定信息变得越来越重要。本专栏将探讨全文索引领域,并集中讨论作者的公共域 indexer 模块。 | | | | 2001年7月6日 | |
|
可爱的 Python:Python IDE 测评 David Mertz 介绍了 6 种 Python 集成开发环境,并比较了其特性、平台和稳定性。他发现 -- 或许只是无意中对开放源代码模块的测试 -- 免费产品似乎都比商业产品优秀。 | | | | 2001年7月10日 | |
|
可爱的 Python:Python 中的函数编程,第 2 部分 专栏继续 David 对 Python 中的函数编程 (FP) 的介绍。请阅读本文对解决编程问题的不同范例的介绍,在介绍过程中 David 将阐述几个中高级的 FP 概念。 | | | | 2001年7月20日 | |
|
可爱的 Python:在 Python 中进行函数编程,第 3 部分 作者 David Mertz 在早期的可爱的 Python 文章:“在 Python 中进行函数编程”的第 1 部分和第 2 部分中介绍过许多函数编程的基本概念。这里通过列举更多的性能,象包含在 Xoltar 工具包中的 Curry 和其它的高阶函数,来继续进行讨论。 | | | | 2001年7月24日 | |
|
可爱的 Python:用于 PalmOS 的 Python Pippy 是移植到 PalmOS 的 Python 子集。使用 Pippy,Python 程序员可以创建在 Palm 设备上运行的定制应用程序,以及直接将 Pippy 用作 Palm 上的交互环境。David 评估了 Pippy 作为实现 Palm 应用程序的一种方式所具有的优越性与局限性。 | | | | 2001年8月21日 | |
|
可爱的 Python:pydoc 和 distutils 模块 最新的 Python 版本中引入了一些模块和工具,使之不只是作为一种语言,而是作为一种工具得到了改进。作者 David Mertz 回顾了一些模块,它们通过改进文档以及 Python 模块和包的分发包使 Python 开发者的工作变得非常轻松。 | | | | 2001年10月19日 | |
|
用 C 扩展 Python 和 Zope 一旦明白怎样用 C 扩展 Phthon,您就会知道这很容易,把 Python 扩展封装到 Zope 也同样容易。难点是如何从各式各样的文档集中找到那些您需要的重要信息,而 Michael 已在本文帮您收集了这些信息。 | | | | 2001年11月16日 | |
|
用 C 扩展 Python 和 Zope 一旦明白怎样用 C 扩展 Phthon,您就会知道这很容易,把 Python 扩展封装到 Zope 也同样容易。难点是如何从各式各样的文档集中找到那些您需要的重要信息,而 Michael 已在本文帮您收集了这些信息。 | | | | 2001年11月16日 | |
|
可爱的 Python:迭代器和简单生成器 Python 2.2 引进了一种带有新关键字的新型构造。这种构造是 yield ;关键字是产出。生成器使几个新型、强大和富有表现力的编程习惯用法成为可能,但初看,要理解生成器,还是有一点困难。本文中,David 由浅入深地介绍了生成器,同时,还介绍了迭代器的相关问题。 | | | | 2002年1月15日 | |
|
可爱的 Python:[anygui] 项目预览 在 Python 世界中有一个非常有趣的 [anygui] 项目,它已经进入了早期的开发阶段。[anygui] 项目打算作为许多主要图形工具箱的下层 API。一旦完全开发成功,Python 程序员就可以调用公共 [anygui] 函数 ― 例如,为创建一个窗口 ― 可由“最适当好用”的工具箱来完成这项工作。在 Windows 上,可以使用到 Win32 API(或者 wxWindows);在 MacOS 上,可以本机调用;在 BeOS 上,使用 Bethon;在 Linux 上,使用 TKinter 或者 GTK;在 Telnet 屏幕上使用 ncurses ― 所有这些都取决于给定的机器上安装的和可用的软件。本文讨论了 [anygui] 当前的开发状态,以及该项目要达到的目标。 | | | | 2002年1月29日 | |
|
可爱的 Python:更新您的 Python 读物列表,第 2 部分 自从我 2001 年 2 月发表最近书籍摘要以来,又有许多关于 Python 的有趣书籍出版。这部分对最近的 Python 书籍(或在上次摘要中遗漏的书籍)提供新的比较评价。 | | | | 2002年3月12日 | |
|
可爱的 Python:使用 SimpleParse 模块进行解析 为 Python 编写的解析工具很多。本专栏讨论了一种构建在 Python 之上的高级解析语言。SimpleParse 在 mxTextTools 之上提供了一种 EBNF 样式的句法,从而很清晰地阐明了语法的表达式。 | | | | 2002年5月14日 | |
|
可爱的 Python:更新您的 Python 读物列表,第 3 部分 自 David 的最近书籍综述发表在“可爱的 Python”专栏以来,又出版了许多关于 Python 的有趣书籍。本文将提供最近的 Python 书籍(或在上次综述中遗漏的书籍)的新比较评论。 | | | | 2002年7月9日 | |
|
可爱的 Python:用 Python 生成器实现“轻便线程” 在“可爱的 Python”的前面一部分中,David 介绍了一种用生成器和简单的调度程序模拟完整协同程序的方法。我们也许可以用直观的方式来扩展这种调度程序,使其允许对多进程使用极为轻量级的线程。与 Stackless Python 微线程非常相似,伪协同程序“轻便线程”几乎不需要 OS(甚至用户区)线程的上下文切换和内存开销。David 在这里介绍了轻便线程,一种巧妙的解决方案,它用来解决使用普通解决方案处理将涉及大量协同进程的问题。 | | | | 2002年7月30日 | |
|
可爱的 Python:基于生成器的状态机 Python 2.2 中引进的简单生成器可用于简化状态机以及模仿协同程序。David 在“可爱的 Python”专栏较早前的一个部分中介绍了一个状态机处理的抽象模式。从那时起,简单生成器的引进就为描述机器提供了一些更自然的范例。协同程序是一种“外来”流机制,广泛使用的语言几乎都不支持这种机制(甚至连非 Stackless Python 都不支持它)。然而,Python 的新生成器几乎完全支持协同程序,几乎不用模仿任何额外的步骤。在本文中,David 通过说明性代码样本解释了所有相关概念。 | | | | 2002年10月8日 | |
|
可爱的 Python:使用 Spark 模块解析 Spark 是一种用 Python 编写的强大的、通用的解析器/编译器框架。在某些方面,Spark 所提供的比 SimpleParse 或其它 Python 解析器提供的都要多。然而,因为它完全是用 Python 编写的,所以速度也会比较慢。David 在本文中讨论了 Spark 模块,给出了一些代码样本,解释了它的用途,并对其应用领域提供了一些建议。 | | | | 2002年10月22日 | |
|
Python 自省指南 自省揭示了关于程序对象的有用信息。Python 是动态的面向对象的编程语言,提供了很棒的自省支持。本文展示了该语言的许多能力,从最基本形式的帮助到较为高级形式的调查。 | | | | 2002年12月1日 | |
|
可爱的 Python:用 Psyco 让 Python 运行得像 C 一样快 Python 的设计在很多方面都类似于 Java 的设计。两者都利用了解释专门的伪编译字节码的虚拟机。JVM 比 Python 更高级的一个方面在于优化了字节码的执行。Psyco,一种 Python 专用编译器,帮助平衡了这一竞争。Psyco 现在是个外部模块,但是在将来的某一天它可能会包括到 Python 本身中去。只需极少量的额外编程,通常就可以使用 Psyco 将 Python 代码的速度提高好几个数量级。在本文中,David Mertz 研究了 Psyco 是什么,并在一些应用程序中对它进行了测试。 | | | | 2002年12月13日 | |
|
实验室中的开放源码 -- Python、Perl 和开放源码工具箱给科学带来了许多好处 科学和工程实验室长期以来一直依靠专用产品进行日常数据分析工作。现在,许多实验室转而使用开放源码产品和开发语言,以获得传统产品无法向他们提供的特殊技术优势。 | | | | 2002年12月24日 | |
|
Python 自省指南 自省揭示了关于程序对象的有用信息。Python 是动态的面向对象的编程语言,提供了很棒的自省支持。本文展示了该语言的许多能力,从最基本形式的帮助到较为高级形式的调查。 | | | | 2002年12月26日 | |
|
Python 自省指南 自省揭示了关于程序对象的有用信息。Python 是动态的面向对象的编程语言,提供了很棒的自省支持。本文展示了该语言的许多能力,从最基本形式的帮助到较为高级形式的调查。 | | | | 2002年12月26日 | |
|
Python 持久性管理 - 使用序列化存储 Python 对象 持久性就是指保持对象,甚至在多次执行同一程序之间也保持对象。通过本文,您会对 Python 对象的各种持久性机制(从关系数据库到 Python 的 pickle 以及其它机制)有一个总体认识。另外,还会让您更深一步地了解 Python 的对象序列化能力。 | | | | 2003年1月17日 | |
|
可爱的 Python:SimPy 简化了复杂模型 -- 模拟离散同时发生的事件的乐趣和收益 人们常常难以理解或预知实际系统的随机行为。有时可能精确论证系统的统计特性(诸如一般的、最差和最好的性能特性)。但在其它时候,只有实际运行(或模拟)系统时,具体设计的缺陷才会显现出来。本文中,David 讨论了 SimPy,它是一种 Python 包,允许您非常方便地创建离散事件系统的模型。 | | | | 2003年2月28日 | |
|
用C语言扩展Python的功能 Pyton和C分别有着各自的优缺点,用Python开发程序速度快,可靠性高,并且有许多现成模块可供使用,但执行速度相对较慢;C语言则正好相反,其执行速度快,但开发效率低。为了充分利用两种语言各自的优点,比较好的做法是用Python开发整个软件框架,而用C语言实现其关键模块。本文介绍如何利用C语言来扩展Python的功能,并辅以具体的实例讲述如何编写Python的扩展模块。 | | | | 2003年3月4日 | |
|
Qt 和 PyQt -- 用于 Python 的高级 GUI 库 Qt 工具箱是一个使用广泛的跨平台 GUI 工具箱,可用于 Windows、Linux、Mac OSX 和许多手持平台。QT 具有良好结构化(但灵活)的面向对象的结构、清晰的文档以及直观的 API。本文中,David Mertz 和 Boudewijn Rempt 探讨了 Qt 库,集中讨论了允许 Python 程序员访问 Qt 功能的 PyQt 绑定。 | | | | 2003年5月26日 | |
|
Python自动单元测试框架 软件的测试是一件非常乏味的事情,在测试别人编写的软件时尤其如此,程序员通常都只对编写代码感兴趣,而不喜欢文档编写和软件测试这类“没有创新”的工作。既然如此,为什么不让程序员在编写软件时自己加入一些用于测试的代码,使测试过程自动化呢?在软件工程中,这一技术称为自动单元测试,本文介绍在用Python开发软件时如何实现这一目标。 | | | | 2003年5月29日 | |
|
可爱的 Python:创建声明性迷你语言 -- 编程为断言而不是指令 Python 的面向对象和透明自省功能使您可以轻松地创建用于编程任务的声明性迷你语言。在本专栏文章中,David 并未仔细研究如何使用 Python 来解释或翻译其它的专门语言(尽管可以做得到),而是研究如何将 Python 代码本身有效地限定在一组声明性元素中。他将向您说明开发人员如何能使用声明技术来简练清晰地陈述应用程序的要求,而让“幕后的”框架来完成繁重的工作。 | | | | 2003年6月9日 | |
|
Python 中的元类编程 -- 将面向对象编程推向新的高度 大多数读者都已熟悉面向对象编程的概念:继承、封装和多态性。但如果有了确定的父类,则通常认为创建给定类的对象是“千篇一律”的操作。事实证明,当可以定制对象创建的过程时,许多新的编程构造变得更容易,或者成为可能。元类支持某些类型的“面向方面编程”,例如,您可以用一些特性来增强类,譬如,跟踪能力、对象持久性、异常日志记录以及其它特性。 | | | | 2003年6月12日 | |
|
在 Python 中封装 GObject -- 您不必是 C 专家就可以为 Python 封装模块 无论您是否对 C 特别精通,通过学习如何在 Python 中封装可供使用的 GTK+ C 模块,都使您能够在 Python 中根据您的需要随时使用用 C 编码的 GObject。 | | | | 2003年7月10日 | |
|
可爱的 Python:多分派 -- 用多元法泛化多态性 面向对象编程的多功能性有许多是通过多态性获得的,多态性是指:倘若有合适的上下文,不同类型的对象可以用类似的方式进行工作。但大多数 OOP 编程是单分派(single dispatch)的;也就是说,仅有一个指定的对象确定采用哪一个代码路径。从概念上来说,较通用的技术是允许函数/方法的所有参数确定其专门化。本文介绍了用 Python 进行多分派(multiple dispatch)的实现,并演示了用该实现生成更佳程序的示例。 | | | | 2003年7月24日 | |
|
Python 设计模式系列之一: 用模式改善软件设计 软件设计大师总是要比初学者更加清楚该如何设计软件,因为他们手中掌握着设计模式这一法宝。作为一种高级的软件复用形式,设计模式是众多优秀软件设计师集体智慧的结晶,能够很好地指导软件设计过程。本系列文章介绍如何在用Python开发软件时应用各种设计模式,Python是一种简单、灵活、高效的原型语言,特别适合于用来理解和掌握设计模式。 | | | | 2003年7月31日 | |
|
Python 设计模式系列之二: 创建型 Simple Factory 模式 软件设计大师总是要比初学者更加清楚该如何设计软件,因为他们手中掌握着设计模式这一法宝。作为一种高级的软件复用形式,设计模式是众多优秀软件设计师集体智慧的结晶,能够很好地指导软件设计过程。本系列文章讲述如何在用Python开发软件时应用各种设计模式,此次介绍的是创建型简单工厂(Simple factory)模式。 | | | | 2003年7月31日 | |
|
可爱的 Python:使用 itertools 模块中的组合函数 -- Python 中的函数编程变“懒惰”了 Python 2.2 对 Python 语言引入了简单的生成器,并根据底层迭代器重新构思了标准循环。在 Python 2.3 中,生成器成了标准(不需要 _future_),而且引入了新模块 itertools 以与迭代器一起灵活地工作。itertools 模块本质上是一组组合高阶函数,只不过这些函数与惰性迭代器一起工作,而不是与有限列表一起工作。在这篇专栏文章中,David 研究了该新模块,并使您感受一下组合迭代器所具有的富有表现力的强大新功能。 | | | | 2003年8月4日 | |
|
Python设计模式系列之三 -- 创建型Factory Method模式 软件设计大师总是要比初学者更加清楚该如何设计软件,因为他们手中掌握着设计模式这一法宝。作为一种高级的软件复用形式,设计模式是众多优秀软件设计师集体智慧的结晶,能够很好地指导软件设计过程。本系列文章讲述如何在用Python开发软件时应用各种设计模式,此次介绍的是创建型工厂方法(Factory Method)模式。 | | | | 2003年9月10日 | |
|
Python设计模式系列之四 -- 创建型Abstract Factory模式 本系列文章讲述如何在用Python开发软件系统时应用各种设计模式,此次介绍的是创建型抽象工厂(Abstract Factory)模式。 | | | | 2003年11月6日 | |
|
Python 中的元类编程,第 2 部分 -- 理解继承的奥秘和实例创建 Michele 和 David 在 developerWorks 上发表的第一篇关于元类编程的文章收到了很多读者反馈, 其中,有一些是来自于那些希望掌握 Python 元类的精妙之处但仍感困惑的读者。本文将重温元类的使用和它们与面向对象编程概念的关系,对比类的实例化与继承,区分类方法和元方法,以及解释并解决元类冲突。 | | | | 2003年11月20日 | |
|
可爱的 Python: Numerical Python -- 使用 Numeric 软件包和 Numarray 软件包 Numerical Python (通常称为 NumPy) 是一个广为应用的 Python 扩展库,用于快速处理任意维数的固定类型数组。由于底层代码是充分优化的 C 语言代码,因而对数组的主要操作在 NumPy 调用中执行时,速度不再受到 Python 解释器的限制。因为 NumPy 已经取得了这样的成功,所以 NumPy 的开发者将用一个叫做 Numarray 的新模块来取代 NumPy,新模块基本上 (但并不是完全) 与 NumPy 兼容。在本文中,David 介绍了 NumPy 的一般功能,以及 Numarray 将要带来的一些特殊改进。 | | | | 2003年12月31日 | |
|
应用 Python 解决一些实际问题 Python 是一种简洁优美的脚本语言.它的诸多优点使它在完成某些任务时轻松自如。本文通过几个具体的例子阐明了这一点 | | | | 2004年1月15日 | |
|
可爱的 Python:点评 Python IDE -- Python 开发变得更容易 David 着眼于四个运行于类 Unix 操作系统之上的开源 Python 代码开发环境。他对两个通用的和两个 Python 专用的编辑器/环境进行了评价,并对比了其各自的优点。 | | | | 2004年2月9日 | |
|
可爱的 Python:Python 中的测试框架 -- 确保软件如您所愿地工作 在这一期文章中,David 研究了 Python 的两个用于单元测试的标准模块:unittest 和 doctest。这些模块扩展了用来确认函数内部的先置条件和后置条件的内置 assert 语句的能力。David 讨论了将测试融入到 Python 开发中的最好方法,同时权衡了用于不同类型项目的不同风格的优势。 | | | | 2004年5月17日 | |
|
可爱的 Python:Python Enterprise Application Kit -- 在 Python 中对协议使用 PEAK PEAK 是一个用于快速开发和重用应用程序组件的 Python 框架。虽然 Python 本身就已经是一门非常高层次的语言,但 PEAK 提供了更高层次的抽象,这些抽象主要来自于对元类(metaclass)及其他高级 Python 技术的巧妙运用。在很多方面,PEAK 对 Python 的贡献相当于 J2EE 对 Java 的贡献。PEAK 中的形式化部分体现在协议的显式规范中,具体说是在可以单独获得的 PyProtocols 包中。 | | | | 2004年6月7日 | |
|
使用 Python 编织神经网络 Hopfield 网络是最容易理解的神经网络模型之一――它们也会是实用的。Hopfield 网络的主要功能是消除噪声和重构已知的图案。Python 程序员 Andrew Blais 是您学习 Hopfield 网络和研究他的 net.py 应用程序的向导。 | | | | 2004年6月28日 | |
|
可爱的 Python:自然语言工具包入门 在本期文章中,David 向您介绍了自然语言工具包(Natural Language Toolkit),它是一个将学术语言技术应用于文本数据集的 Python 库。称为“文本处理”的程序设计是其基本功能;更深入的是专门用于研究自然语言的语法以及语义分析的能力。 | | | | 2004年7月26日 | |
|
可爱的 Python:了解 DParser for Python 首先初步了解 DParser 这一由 J. Plevyak 编写的简单而强大的解析工具。然后了解用于 Python 的 DParser,它为 Python 程序员提供了一个访问 DParser 的无缝接口,并看看它与上一期中介绍的解析器的比较。语法规则以类似于 Spark 或 PLY 的方式通过 Python 函数文档字符串加入到 DParser 中。 | | | | 2004年8月26日 | |
|
可爱的 Python:用 hashcash 打击垃圾邮件 hashcash 是一个基于可广泛应用的 SHA-1 算法的巧妙系统,它使得请求者要进行大量可参数化的工作,而求值程序仍可以“廉价”地进行检验。换句话说,发送者为了向您的收件箱中放入一些内容,不得不去做一些切实的工作。您当然可以使用 hashcash 来防止垃圾邮件,不过它还有其他方面的应用,其中包括为 Wiki 防止垃圾邮件以及加速分布式并行应用程序的运转。在本文中,您将接触到 David 自己的基于 Python 的 hashcash 实现。 | | | | 2004年11月22日 | |
|
Python 与 Gnumeric 共舞 本文介绍使用 Python 为 Gnumeric 编写插件函数,帮助读者理解用 Python 进行应用程序二次开发过程的原理和技巧。 | | | | 2004年12月9日 | |
|
基于 Python Matplotlib 模块的高质量图形输出 Matplotlib 是一个用来绘制二维图形的 Python 模块,它克隆了许多 Matlab 中的函数, 用以帮助 Python 用户轻松获得高质量(达到出版水平)的二维图形。 | | | | 2005年1月12日 | |
|
可爱的 Python: Pyrex 扩展并加速 Python 应用程序 作者在使用 Pyrex 加速自己的纯 Python 版本的 hashcash,Pyrex 是一种用来编写 Python 扩展模块的语言,可以代替 C 语言来完成这项工作。作者还对使用 Pyrex 编写代码(通常是在大型的 Python 应用程序中使用)和使用 Psyco 编译器加速 Python 应用程序进行了对比,后者作者已经在 developerWorks 撰写文章进行了介绍。 | | | | 2005年2月25日 | |
|
探索 Python,第 1 部分:Python 的内置数值类型 Python 编程语言具有很高的灵活性,它支持多种编程方法,包括过程化的、面向对象的和函数式的。但最重要的是,在 Python 中编写程序是件令人愉悦的事。该语言对开发进程有支持作用,决不会妨碍它。本文是关于 Python 编程系列文章的第一篇,主要介绍 Python 及其内置数值类型。 | | | | 2005年6月6日 | |
|
可爱的 Python:深入 PEAK 的新特性 Python Enterprise Application Kit (PEAK)是一个用于快速开发和重用应用程序组件的框架。当 Python 自己已经成为一种高级语言之后,PEAK 还可以提供更高级的抽象。最近在 PEAK 中添加的一个功能是创建通用函数,并根据断言进行调度,而不只是根据类型进行调度。听起来很神秘?下面我们来详细了解一下。 | | | | 2005年10月24日 | |
|
Python Web 框架,第 1 部分: 使用 Django 和 Python 开发 Web 站点 本系列文章一共有两篇,本文是其中的第一篇。在这一篇文章中,我们将展示 Django 的用法,Django 是 Python 编程语言驱动的一个开源模型-视图-控制器(MVC)风格的 Web 应用程序框架。使用 Django,我们在几分钟之内就可以创建高品质、易维护、数据库驱动的应用程序。 | | | | 2006年7月3日 | |
|
Python Web 框架,第 2 部分: 使用 TurboGears 和 Python 开发 Web 站点 本系列文章一共有两篇,本文是第二篇。在本文中,我们将展示 TurboGears 的用法,它是另外一个基于 Python 的 MVC 风格的 Web 应用程序框架。在第一篇文章中我们介绍了 Django 框架,本文将介绍如何使用 TurboGears 来创建一个基于 Web 的应用程序,并将对 Turbogears 和 Django 进行比较。 | | | | 2006年9月18日 | |
|
可爱的 Python: 使用 setuptools 孵化 Python egg David 在本文中将带领我们了解一下 setuptools 框架,它是 Python Enterprise Application Kit(PEAK)的一个副项目。 setuptools 替换了标准的 distutils 库,并为 Python 添加了版本化的包和依赖性管理。Perl 用户比较熟悉 CPAN,而 Ruby 用户则比较熟悉 Gems;引导 setuptools 的 ez_setup 工具和随之而生的扩展后的 easy_install 与 “Cheeseshop”(Python Package Index,也称为 “PyPI”)一起工作来实现相同的功能。另外,setuptools 还让我们可以将自己的库包装成一个称为 “egg” 的包,它与 Java 的 JAR 文件类似,不过是用于 Python 的。 | | | | 2006年11月30日 | |
|
可爱的 Python: Decorator 简化元编程 Python 使元编程成为可能,不过每个版本的 Python 都有一些细微的区别(并且不是完全兼容),这使我们实现元编程的道路变得更加崎岖。一类函数对象的使用由来已久,同样还有一些技术用于探索和实现魔术般的属性。在版本 2.2 中,Python 增加了一种很有帮助的定制元类机制,但是其代价就是令用户绞尽脑汁。最近,在 2.4 版本中,Python 增加了 “decorator” ,这是适于执行大部分元编程的最新方式 —— 也是到目前为止对用户最友好的方式。 | | | | 2007年1月23日 | |
|
可爱的 Python: Python 之优雅与瑕疵,第 1 部分 自从 Python 1.5.2(一个长期以来一直稳定且可靠的版本)迈入 “黄金时代” 以来,Python 增加了许多语法特性以及内置函数和类型。这些改进单独地看都是合理的调整,但是作为一个整体,它们使 Python 变得更加复杂,不再是有经验的程序员 “花上一个下午” 就能够掌握的语言了;另外,一些修改在带来好处的同时也有缺陷。 | | | | 2007年4月29日 | |
|
可爱的 Python: Python 之优雅与瑕疵,第 2 部分 在这篇分两部分的系列文章中,David 讨论了添加到最近几个 Python 版本中的一些不那么引人注目的特性和不恰当特性,目的是向业余 Python 编程人员揭示 Python 优点的同时使他们能够避免错误。本期文章将讨论的内容包括属性和方法、描述符和特性。 | | | | 2007年10月8日 | |
|
Python 中的元类编程,第 3 部分 编程时太多的聪明反而会使设计更复杂、代码更脆弱、学习曲线更陡峭,最糟的是,调试也更加困难。Michele 和 David 觉得,这在一定程度上归因于对他们早期的 Python 元类文章的接受而引起的聪明过度。在本文中,他们试图帮助程序员避免小聪明,以修正这些错误。 | | | | 2007年11月22日 | |
|
使用 Python 创建 UNIX 命令行工具 如果您在 IT 部门担任 UNIX 系统管理员、软件开发人员甚至是经理,掌握几项技能将使您与众不同。您对 OSI 模型是否有充分的了解?您对子网划分是否得心应手?您了解 UNXI 权限吗?让我为您的技能背景增添一个不起眼的命令行工具。在本文结束时,在 IT 部门担任任何职位的读者都应该至少能创建一个简单的命令行工具。 | | | | 2008年5月29日 | |
|
从脚本编写到面向对象的 Python 编程 从编写过程式脚本转换到面向对象的编程通常是非常困难的。本文探索如何重用来自 PHP、Bash 或 Python 脚本的程序,转换到 Python 中的面向对象的编程。本文还将简略地谈到函数式编程的适当使用。 | | | | 2008年9月11日 | |
|
用 4Suite 进行 Python 和 XML 开发,第一部分:PyXml 在系列的第一篇文章里,教程涵盖了 PyXml,包含在 Fourthought 的 4Suite 中的W3C 的“DOM 级别 2”规范的一个实现。4Suite 是一个Python的用于 XML 处理的开放源码的、全面的库和工具箱,它实现了许多与 XML 相关的开放标准。这一系列教程介绍了 4Suite 并给了使用4Suite 进行 XML 开发的实践示例。
| | | | 2001年12月31日 | |
|
用 4Suite 进行 Python 和 XML 开发,第三部分:4RDF 4Suite 是一个Python的用于 XML 处理的开放源码的、全面的库和工具箱,它实现了许多与 XML 相关的开放标准。本教程是介绍 4Suite 的系列教程的第三部分。研究了资源描述框架(Resource Description Framework )的细节,并带有如何与 Python 一起使用的各种 RDF 设施的实践示例。 | | | | 2002年9月17日 | |
|
4Suite 进行 Python 和 XML 开发,第四部分:合成和更新 4Suite 是一个Python的用于 XML 处理的开放源码的、全面的库和工具箱,它实现了许多与 XML 相关的开放标准。本教程是介绍 4Suite 的系列教程的第四部分。向开发人员介绍了 W3C XML 规范 XPointer、XInclude 和 XML Base,以及独立规范 XUpdate,对于更新部分 XML 文档,除 XSLT 和 DOM 解析方法外,XUpdate 是另一种可供选择的方法。作者还详细介绍了如何通过他们的开放源码 Python 工具集 4Suite 来使用这些 XML 指向、合成和更新技术。 | | | | 2003年1月24日 | |
|
使用 Python 访问 DB2 for Linux Python 数据库 API 是实现 Python 到数据库管理系统接口的标准规范。 DB2 模块是实现 Python 数据库的标准。本教程涵盖了整个 API,并提供了一些样例代码,可以在 Python 的交互模式下运行。使用的数据库是 DB2 UDB 8.1 企业 Linux 版带的 sample 数据库。 | | | | 2003年3月18日 | |
|
用 4Suite 进行 Python/XML 开发,第 5 部分 本教程为 Python 开发人员演示了如何使用流行的开放源码 4Suite 工具箱进行 XML 处理,以创建 Web 资源库应用程序。 | | | | 2003年5月15日 | |
|
使用 Python 进行 socket 编程 本教程将向您介绍如何使用 Python 开发基于 socket 的网络应用程序。在本教程中,您将首先学习一些 Python 的基础知识,并了解 Python 是如何成为一种很好的网络编程语言的。然后您将着重了解 Python 的基本 socket 特性,我们使用了一个样例聊天程序作为参考;并了解一下可以提供异步通信的其他高级类。 | | | | 2005年11月10日 | |
|
神经网络介绍 神经网络也许是计算机计算的将来,一个了解它的好方法是用一个它可以解决的难题来说明。假设给出 500 个字符的代码段,您知道它们是 C、C++、Java 或者 Python。现在构造一个程序,来识别编写这段代码的语言。一种解决方案是构造一个能够学习识别这些语言的神经网络。这篇文章讨论了神经网络的基本功能以及构造神经网络的方法,这样就可以在编码时应用它们了。 | | | | 2001年6月1日 | |
|
集成 Pyrite 的 Palm-Linux Pyrite Project 创建了一些相关的工具,以允许 Python 程序员存取和控制 PalmOS 手持设备。本文讨论了我们使用 Pyrite 工具的经验,它的底层构造和有效使用 Pyrite 工具的技巧。 | | | | 2001年8月3日 | |
|
在 Perl 中使用内联 新的 Perl 内联模块允许您使用其他语言编写代码(如 C、Python、Tcl 或 Java),并将其随意地放进 Perl 脚本中。不像以前将 C 语言代码与 Perl 进行连接的方法那样,内联的使用将非常简便,尤其是在与 Perl 体系保持一致方面更加出色。内联的一个非常实用的地方是可以依据 C 语言的库编写出快速包装代码并将在 Perl 上使用它,这样(就我而言)就可以将 Perl 变成世界上最好的测试平台。 | | | | 2001年8月7日 | |
|
供初学者使用的 wxHTML 本文假定您具有基本的 wxPython 知识。作者将为我们讲述如何使用 wxPython 构建一个具备基本浏览器功能的应用程序。 | | | | 2002年7月12日 | |
|
使用 Puffin 测试 Web 应用程序: Puffin 测试框架,第 1 部分 这个由四篇文章组成的系列的第一篇介绍了 Puffin 测试系统。Puffin 是一个用于测试 Web 应用程序的开放源代码的框架。使用 Puffin,您甚至可以为最复杂的 Web 应用程序构建动态驱动的回归测试。Puffin 是 100% 用 Python 写的,很容易扩展到甚至可以处理模糊的测试情况。 | | | | 2002年8月27日 | |
|
可爱的 Jython 可爱的 Jython :Jython 是 Python 编程语言的 100% 纯 Java 实现。本文中,作者通过比照 Python 和 Java 语言创建类的方法,以及它们如何使用解释器向 Java 开发人员介绍了 Jython 2.1。 | | | | 2003年7月9日 | |
|
使用 Twisted Matrix 框架来进行网络编程,第 1 部分:理解异步联网 Twisted Matrix 是一种越来越受欢迎的纯 Python 框架,用来进行网络服务和应用程序的编程。虽然 Twisted Matrix 中有大量松散耦合的模块化组件,但该框架的中心概念还是非阻塞异步服务器这一思想。在本文中,David 向您介绍了一种新编程风格,对于习惯于线程技术或分叉服务器的开发人员来说,这是一种新颖的编程风格,但它却能在繁重负载的情况下带来极高的效率。 | | | | 2003年9月1日 | |
|
CpuMemSets 在 Linux 中的实现 本文将以 SGI 的 ProPack v2.2 为研究对象,分析 CpuMemSets 在Linux-2.4.20 中的具体实现。CpuMemSets 是 SGI 进行的一个开放源码项目,由针对 Linux2.4 内核的补丁、用户库、python 模块和 runon 等命令共四部分组成,以实现处理器和内存块的分区为目标,控制系统资源(处理器、内存块)面向内核、任务以及虚拟存储区的分配,为 dplace、RunOn 等 NUMA 工具提供支持,最终优化 Linux 系统的 NUMA 性能。 | | | | 2004年11月4日 | |
|
MySQL for Linux on POWER,第 2 部分: 开发应用 MySQL 数据库服务器可以运行在基于 IBM(R) POWER(TM) 和 PowerPC(R) 处理器的服务器上的 Linux(R)(统称为 POWER 上 的 Linux)中,通过此系列文章的第 2 部分(也是最后一部分)了解其可用性。第 2 部分的重点是使用某些主流编程语言为 MySQL 开发应用程序,比如 PHP、Java(TM)、C/C++、Python 和 Perl。作为面向在 POWER 上 Linux 中使用 MySQL 的应用程序开发者的一篇简短指南,本文适合那些熟悉自己的系统环境、网络、媒体设备和磁盘资源的 MySQL 开发者和数据库管理员阅读。 | | | | 2005年5月8日 | |
|
XML 问题: 管道流微格式 XML 一种越来越常见的用法是让小段内容通过任意的处理工作流,就像 UNIX 管道中的文本那样。这些片段可能来自一个或多个文档,可以是整个文档也可以是其中的某些部分,也可能按需由其他来源综合而成,因此非常适合用流来描述。使用明确定义的 XML 或 XHTML 片段的微格式(microformat)方法非常适合于这种处理方式。本文介绍了一些这样的例子,即使用现有的 Python 和 Java(TM) 工具以及 hCard 和 hCalendar 微格式。 | | | | 2006年6月1日 | |
|
闭包的概念、形式与应用 随着硬件性能的提升以及编译技术和虚拟机技术的改进,一些曾被性能问题所限制的动态语言开始受到关注,Python、Ruby 和 Lua 等语言都开始在应用中崭露头角。动态语言因其方便快捷的开发方式成为很多人喜爱的编程语言,伴随动态语言的流行,我们经常听到一个名词——闭包,很多人会问闭包是什么?闭包是用来做什么的?本文汇集了有关闭包的概念、应用及其在一些编程语言中的表现形式,以供参考。 | | | | 2008年7月10日 | |
|
Linux Socket 编程,第一部分 本教程展示如何开始使用套接字编程。重点集中于 C 和 Python,本教程指导您完成一个回显(echo)服务器和客户机(它们通过 TCP/IP 来连接)的创建过程。它描述了基础的网络、层和协议概念,同时提供了丰富的示例源代码。 | | | | 2003年12月15日 | |
|
Linux Socket 编程,第二部分 该中级教程是在 Linux Socket 编程第一部分的基础上的展开,主要集中在用户数据报协议 (UDP)方面,向读者展示如何用 C 和 Python 写 UDP sockets 应用程序,对于其他语言也适用。 | | | | 2004年4月5日 | |
|
针对 OLPC 膝上型电脑的应用程序开发 XO 膝上型电脑(由 One-Laptop-Per-Child 组织所发起的)是一个廉价的膝上型电脑项目,旨在帮助教育全世界的儿童。XO 膝上型电脑包含了多项创新,例如新颖、廉价且耐用的硬件设计以及使用 GNU/Linux 作为底层操作系统。XO 也包含一个用 Python 编写的应用程序环境,该环境含有一个叫做 Sugar 的任何人(包括儿童)都能用的人机界面。本文探讨了 Sugar API 并学习如何在 Sugar 中使用 Python 语言开发和调试图形活动。 | | | | 2008年1月3日 | |
|
Continuation 和高级流程控制 流程控制通常非常简单:包括序列化、选择和迭代等过程。很多一直在使用这些基本控制结构的程序员都曾经经历过一段困难的时间来确定哪种流程控制是必需的。本文将简要介绍有关 continuation 的内容,并向您展示如何用最新的方法来考虑流程控制的问题。 | | | | 2006年7月17日 | |
|
用 wxWidget 构建跨平台的 GUI wxWidgets 工具包提供图形用户界面(GUI)开发所需的一些功能强大的跨平台工具。除了原生的 C++, 还有其他几种语言提供了使用该工具包所需的包装程序。本文将介绍如何使用 wxWidgets 工具包来在所选用的编程语言中创建用途广泛的 GUI。 | | | | 2006年10月26日 | |
|
在 PyGTK 中管理部件几何结构 GTK+ 中有一些容器小部件,通过使用该工具箱的 API,可以创建用户定义的容器。在 PyGTK 中也公开了这个 API。在本文中,学习如何在 PyGTK 中创建一个“权重表(weighted-table)” 容器。本文的实现介绍了 GTK+ 几何结构管理的基本模型,并让您大致了解实现容器部件时应该考虑哪些事项。 | | | | 2008年6月17日 | |
|