用 Boost Python 库来快速简单的将C++程序库输出到Python,这样Python接口就和C++接口非常相似了.这个库是为了最低限度的影响你的 C++设计而设计的.大多数情况下,你不需要被迫修改你的C++类,以便它们能够和 Boost.Python库一起使用.系统将会简单地将你的C++类和函数''反射''到Python. Boost.Python库包括的主要特征有: 在Python中生成扩展类型的子类 在Python中覆盖虚函数 [成员]函数重载 数字操作符的自动封装 以及其它 支持的平台
Boost.Python库在以下的配置中已经被测试通过: 在下面的编译器/库组合中使用Python2.0 MSVC++6sp4 和自带程序库. Metrowerks CodeWarrior Pro6 for Windows即将发布的版本和自带程序库(第一个版本有一个对Boost.Python来说致命的bug) Intel C++ 5.0. 编译成功但在运行时因为它的一个异常处理实现的bug而失败了.(FAILED at runtime) 在下面的编译器/库组合中使用Python 1.5.2 MSVC++6sp4 MSVC++6sp4/STLport 4.0 GCC 2.95.2 [by Ullrich Koethe] GCC 2.95.2/STLport 4.0 Compaq C++ V6.2-024 for Digital UNIX V5.0 Rev. 910 (一个基于EDG的编译器) 和 STLport-4.1b3 [Ralf W. Grosse-Kunstleve] Metrowerks CodeWarrior Pro6 for Windows的即将发布的版本(第一个版本有一个对Boost.Python来说致命的bug). 致谢 David Abrahams 发起并写了大多数的库, 然后继续协调开发. Ullrich Koethe独立开发了一个类似的系统. 但当他发现了Boost.Python的时候,他慷慨地贡献了不计其数小时的编码以及在如何改进上的深邃地洞察力. 他负责函数重载的一个早期版本的支持并且写了反射C++继承关系的技术支持部分. 他曾经帮助改进 C++和Python地错误报告, 并且设计了一个非常易于使用的方法来暴露数字操作符, 包括一个使用重载来避免explicit (译者注:此处不译似乎更利于表达)强制类型转换的方法. Ralf W. Grosse-Kunstleve 贡献了 pickle 支持 和许多其它地小改进. 他正在寻找一个让多个模块导出的类型互相作用的方法. Boost 邮件列表的成员和Python社团提供了无价的早期反馈.特别是Ron Clarke, Mark Evans, Anton Gluck, Chuck Ingold, Prabhu Ramachandran, 和Barry Scott 在Boost.Python的早期开发阶段迈出 了使用Boost.Python的勇敢的一步. 如果没有Dragon Systems/Lernout and Hauspie, Inc的慷慨支持, Boost.Python的开发是不会成功的,他们支持Boost.Python 作为一个开放源码的项目. 目录 编写Python扩展模块的一个简要的介绍 Boost.Python和其它Python扩展系统的比较 简单的例子 导出类 可覆盖的虚函数 函数重载 继承 特殊方法和操作符的支持 内幕一瞥 生成一个扩展模块 Pickle 支持 交叉扩展模块间的依赖 封装枚举 指针和灵巧指针 内部数据结构
文档是目前正在进行中的主要项目;所有的协助将会受到极大的感激!同时,Boost.Python的 每个特征的有用的例子在回归测试文件test/comprehensive.[py/hpp/cpp]中都应该是明显的.
问题请发送至boost 邮件列表.
© David Abrahams 2001 版权所有. 本文档允许复制、使用、修改、出售和分发,前提是这个版权声明必须出现在所有的拷贝上。本文档的提供不承担任何直接或隐含的保证,并且不做其适合任一目的之声明。
更新日期: 2001年3月6日
本文地址:http://com.8s8s.com/it/it29167.htm