C语言程序如何调用python程序
下面是一个例子:
首先是python的一个简单函数
class Hello:
def __init__(self, x):
self.a = x
def print(self, x=None):
print(x)
def xprint():
print("hello world")
if __name__ == "__main__":
xprint()
h = Hello(5)
h.print()1
下面是C语言
#include <python3.4m/Python.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
Py_Initialize();
// 将当前目录加入sys.path
PyRun_SimpleString("import sys");
PyRun_SimpleString("sys.path.append('./')");
// 导入hello.py模块
PyObject *pmodule = PyImport_ImportModule("hello");
// 获得函数xprint对象,并调用,输出“hello world\n”
PyObject *pfunc = PyObject_GetAttrString(pmodule, "xprint");
PyObject_CallFunction(pfunc, NULL);
// 获得类Hello并生成实例pinstance,并调用print成员函数,输出“5 6\n”
PyObject *pclass = PyObject_GetAttrString(pmodule, "Hello");
PyObject *arg = Py_BuildValue("(i)", 5);
PyObject *pinstance = PyObject_Call(pclass, arg, NULL);
PyObject_CallMethod(pinstance, "print", "i", 6);
Py_Finalize();
return 0;
}
编译命令如下:
gcc pyapi.c -lpython3.4m -o pyapi
cpython是啥
CPython是指C语言编写的Python解释器,它是Python编程语言的官方解释器,也是最常用的Python解释器之一。CPython将Python代码翻译成字节码,然后通过解释器将字节码转换成机器码并执行。
CPython中的"C"代表它是用C语言实现的。Python语言本身是一种高级的、解释性的、面向对象的编程语言,而CPython则是Python语言最常见的实现方式。
Python的设计者Guido van Rossum在1989年创造了Python语言,并在1991年发布了Python的第一个版本。随后,CPython成为Python的主要实现,也是官方版本。除了CPython外,还有其他的Python解释器实现,如Jython(用Java实现)、IronPython(用C#实现)等,它们在特定的应用场景下有一些优势。
由于CPython是官方版本,大部分Python库和工具都是为CPython而开发的。因此,CPython是大多数Python开发者使用的首选解释器。在编写和运行Python代码时,一般使用CPython解释器。