C語言如何調(diào)用python,相關(guān)步驟如下:
創(chuàng)新互聯(lián)建站從2013年成立,先為連云港等服務(wù)建站,連云港等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為連云港企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。
首先,C語言中調(diào)用python,要使用頭文件Python.h。
2、接著,定義一個調(diào)用python的函數(shù)。
相關(guān)推薦:《Python教程》
3、函數(shù)中,設(shè)置python庫的路徑。
4、然后,初始化python。
5、運(yùn)行一個python代碼,輸出How are you。
6、最后,釋放python。
1、語言類型不同
Python是一種動態(tài)類型語言,又是強(qiáng)類型語言;C語言是靜態(tài)類型語言,在編譯期間就確定數(shù)據(jù)類型的語言;
2、內(nèi)存管理不同
Python使用自動垃圾收集器進(jìn)行內(nèi)存管理;C語言中程序員必須自己進(jìn)行內(nèi)存管理;
3、對象機(jī)制不同
Python所有的數(shù)據(jù),都是由對象或者對象之間的關(guān)系表示的,函數(shù)是對象,字符串是對象,每個東西都是對象的概念;C語言中沒有對象這個概念,只有數(shù)據(jù)的表示。
4、運(yùn)行效率不同
Python有一個GIL鎖,導(dǎo)致其對多線程支持不夠好,運(yùn)行速度比較慢;C語言比較快,是很好的底層語言,運(yùn)行效率上優(yōu)于Python。
5、變量類型不同
Python有六個標(biāo)準(zhǔn)的數(shù)據(jù)類型,包含Number數(shù)字、String字符串、List列表、Tuple元祖、Sets集合、Dictionary字典;數(shù)字類型有四種,包含:整數(shù)、布爾型、浮點數(shù)和復(fù)數(shù)。C語言也分為四大類,其中包含基本類型、枚舉類型、void的類型、派生類型,基本類型包含整數(shù)類型、浮點類型。
6、函數(shù)庫的使用方法不同
C語言中使用庫函數(shù),需要引入頭文件用include引入;Python中需要引入別的模塊或者函數(shù)時需要用import引入。
下面是一個例子:
首先是python的一個簡單函數(shù)
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();
// 將當(dāng)前目錄加入sys.path
PyRun_SimpleString("import sys");
PyRun_SimpleString("sys.path.append('./')");
// 導(dǎo)入hello.py模塊
PyObject *pmodule = PyImport_ImportModule("hello");
// 獲得函數(shù)xprint對象,并調(diào)用,輸出“hello world\n”
PyObject *pfunc = PyObject_GetAttrString(pmodule, "xprint");
PyObject_CallFunction(pfunc, NULL);
// 獲得類Hello并生成實例pinstance,并調(diào)用print成員函數(shù),輸出“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
C語言不能直接調(diào)用Python源程序,但是可以通過進(jìn)程調(diào)用來實現(xiàn)。