结合使用 Python 和 C 我们需要的代码

2025-06-07

同时使用 Python 和 C

我们需要什么

代码

Python 和 C 是编程语言中最流行、最伟大的两种语言。许多语言之间可以很容易地互相通信,但 Python 和 C 之间却有点棘手。首先,让我们先来了解一下我们为什么要这样做。

毫无疑问,这两种语言都非常强大,而且非常有用。有时,在 Python 项目中使用 C 语言的原始性能会带来回报,它确实有助于减少响应和处理时间等。

我们需要什么

Python 和 C。就是这样。

代码

在这个例子中,我将使用一个简单的斐波那契函数来演示这一切。


#include <Python.h>

// create the function like you normally would in C
int CFib(int n){
    if(n < 2)
        return n;
    else return CFib(n - 1) + CFib(n - 2)
}
// this function will be binding our python version and our C version together
// will only take one and only one non-keyword arguement
static PyObject* fib(PyObject* self, PyObject* args) {
    int n;
    if(!PyArg_ParseTuple(args, "i", &n))
        return NULL;
     return Py_BuildValue("i", CFib(n))
}
Enter fullscreen mode Exit fullscreen mode

在代码中我们可以看到我们需要Python.h头文件,它包含了所有相关的方法、函数、属性等等,以便两种语言能够协同工作。我们首先用 C 语言正常创建函数,然后使用 Python 头文件中的方法再次创建它,但需要添加一些参数。

如你所见,我们在函数内部使用了构建器和解析器。它们在两种语言之间进行通信,从而用 C 语言创建该函数的 Python 版本。

此外,我们需要一个用 Python 编写的小型安装脚本

from distutils.core import setup, Extension

setup(name='ModuleName', version='1.0', ext_modules=[Extension('ModuleName', ['Fib.c'])])
Enter fullscreen mode Exit fullscreen mode

大部分内容不言自明。我们从 Python 3+ 内置的库导入,该库允许我们运行安装和扩展脚本,它们都与 C 和 Python 头文件兼容。

为了运行它并将其保存为我们自己的项目,我们需要运行这两个命令,
python setup.py build
python setup.py install
这样您就可以从任何其他 python 项目调用您的模块。

现在到了最后的压轴戏

import ModuleName # really should've chosen a better name
ModuleName.CFib(2)
Enter fullscreen mode Exit fullscreen mode

打印出 1

如果你想 fork 它,可以点击我的 GitHub 来获取
!此外,这是一个非常基础的版本,你可以在Python 教程网站
上学习更深入的学习方法。

有任何错误或建议请随时告诉我<3

文章来源:https://dev.to/rapidnerd/using-python-and-c-together-d4e
PREV
我推出了一款免费的拖放式仪表盘生成器
NEXT
我们如何使用 Amazon ECS Fargate 每月损失 800 美元但首先,介绍一下背景...这就是我们被收取如此多费用的原因...我们如何发现...小小的实验故事的寓意...