Python 高级扩展、嵌入及 Python 3 新特性介绍
1. Python 扩展与嵌入
在 Python 开发中,扩展和嵌入是常见的操作。使用 ctypes 时,通常会涉及到不同复杂度的 Python 包装层。比如,有些情况下可以直接调用 C 函数,但有时需要实现一个小的包装层来处理底层 C 代码的特定方面。像 replace() 函数会额外处理 C 库修改输入缓冲区的情况, distance() 函数则会从元组创建 Point 实例并传递指针。
ctypes 模块还有很多高级特性未被详细介绍,例如它能在 Windows 上访问多种不同类型的库,支持回调函数、不完整类型等。相关在线文档有很多示例,可作为进一步使用的起点。
当用简单的 C 代码扩展 Python 时,手动创建扩展模块或使用 ctypes 通常比较直接。但对于更复杂的情况,这可能会变得繁琐。此时,可以寻找合适的扩展构建工具,这些工具能自动化大部分扩展构建过程,或提供更高级的编程接口。相关工具链接可在 这里 找到。
下面以 SWIG 为例进行说明。使用自动化工具时,通常只需从高层次描述扩展模块的内容。例如,使用 SWIG 时,要编写一个简短的接口规范,示例如下:
超级会员免费看
订阅专栏 解锁全文
2542

被折叠的 条评论
为什么被折叠?



