大橙子网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
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
1、语言类型不同
Python是一种动态类型语言,又是强类型语言;C语言是静态类型语言,在编译期间就确定数据类型的语言;
2、内存管理不同
Python使用自动垃圾收集器进行内存管理;C语言中程序员必须自己进行内存管理;
3、对象机制不同
Python所有的数据,都是由对象或者对象之间的关系表示的,函数是对象,字符串是对象,每个东西都是对象的概念;C语言中没有对象这个概念,只有数据的表示。
4、运行效率不同
Python有一个GIL锁,导致其对多线程支持不够好,运行速度比较慢;C语言比较快,是很好的底层语言,运行效率上优于Python。
5、变量类型不同
Python有六个标准的数据类型,包含Number数字、String字符串、List列表、Tuple元祖、Sets集合、Dictionary字典;数字类型有四种,包含:整数、布尔型、浮点数和复数。C语言也分为四大类,其中包含基本类型、枚举类型、void的类型、派生类型,基本类型包含整数类型、浮点类型。
6、函数库的使用方法不同
C语言中使用库函数,需要引入头文件用include引入;Python中需要引入别的模块或者函数时需要用import引入。