Chicken for python:使用共享库扩展python

2024-05-12 16:38:07 发布

您现在位置:Python中文网/ 问答频道 /正文

我读过,通过编写一个共享库来扩展Python是可能的,Python解释器可以将其作为import语句的一部分加载。在

谁能给我一个简单的例子或教程,在这里,我们用“E>鸡计划”EME>代替EM>C/C++ +EEM?据说鸡肉可以产生“便携高效的C”,因此它应该适合这样的任务,不是吗?在

干杯!在


Tags: import教程语句解释器计划例子emeem
1条回答
网友
1楼 · 发布于 2024-05-12 16:38:07

这是一个有趣的问题。你的建议看起来是个好主意,但是我不认为有人曾经尝试过,并且有时间写一篇教程。有一个接口可以从chicken scheme调用python,参见pyffi,这看起来像是python C接口的包装器。Pyffi不允许在问题中要求的其他方向拨打电话。在

在C语言中为python创建一个模块需要使用大量python API来操作python对象,因为python是动态类型化的,所有基于C代码的参数都是PyObject这适用于内置类型、用户定义的类型和集合。然后,C API提供函数来操作这些对象、执行算术、将它们添加到集合和从集合中添加等等。此外,必须对所有pyObject执行手动引用计数,以确保垃圾回收可以在python中正确执行。此文档可以在here中找到。在

在C代码中,可以将PyObject转换成C类型,如int、double等,这可以使编写模块变得更容易,如果函数很大,或者正在使用本机C集合。然后,必须将输出包装回PyObjects,才能将数据返回python代码。在

在chicken中创建python模块可能比C容易得多,因为这两种语言都是动态类型语言,因此无需显式地操作PyObjects,同时还可以创建高效的C代码。看起来pyffi已经在映射类型方面做了一些工作,不过还需要进一步的工作来允许它编写模块。在

相关问题 更多 >