欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
用C/C 擴展Python語(yǔ)言

Python是一門(mén)功能強大的腳本語(yǔ)言,它的強大不僅表現在功能上,還表現在其擴展性上。她提供大量的API以方便程序員利用C/C++對Python進(jìn)行擴展。因為執行速度慢幾乎是所有腳本語(yǔ)言的通病,Python通過(guò)一個(gè)巧妙的方法,使得程序員可以利用C/C++編寫(xiě)執行速度比較慢的模塊,從而獲得與C/C++差不多的執行性能。本文給出一個(gè)例子說(shuō)明怎樣用C來(lái)擴展Python。

1、在C和Python之間進(jìn)行數據類(lèi)型轉化

Python有六種基本數據類(lèi)型:整型,浮點(diǎn)型,字符串,列表,字典,元組。在進(jìn)行介紹之前,我們先了解一下怎么在C和Python之間轉化幾種常用的數據類(lèi)型。

整型轉化

PyObject *pInt = Py_BuildValue(\"i\", 2007);

浮點(diǎn)型轉化

PyObject *pFloat = Py_BuildValue(\"f\", 3.14);

字符串轉化

PyObject *pString = Py_BuildValue(\"s\", \"I am Yan.Dingcheng\");

2、用C擴展Python

在了解了常用的數據類(lèi)型轉化以后,我們就可以編寫(xiě)一些C程序來(lái)擴展Python了。比如下面有個(gè)C文件exam.c,我們要在Python里調用它里面的函數。

 int power(int a)

{

    return a * a;

}

int add_int(int a, int b)

{

    return a + b;

}

void my_print(const char *s)

{

    if (!s) {

        return;

    }

    printf(\"%s \\n\", s);

}

void whoami(void)

{

    printf(\"I am plusboy. \\n\");

}

那么我們首先要將其實(shí)現為Python的一個(gè)模塊,這需要編寫(xiě)一個(gè)封裝接口,我們把它保存為wrap_exam.c,示例如下:

 #include <Python.h>

PyObject *wrap_power(PyObject *self, PyObject *args)

{

    int result, n;

     

     /*這里args包含Python解釋器要傳遞給C函數的參數列表,

 

     \"i:power\"表示要給power函數傳遞一個(gè)整數,

     n保存從Python腳本里傳過(guò)來(lái)的參數*/

    if (!PyArg_ParseTuple(args, \"i:power\", &n)) {

        return NULL;

     }

    result = power(n);

    return Py_BuildValue(\"i\", result);

}

PyObject *wrap_add_int(PyObject *self, PyObject *args)

{

    int result, a, b;

     /*這里args包含Python解釋器要傳遞給C函數的參數列表,

     \"ii:power\"表示要給add_int函數傳遞兩個(gè)整數,

     a, b保存從Python腳本里傳過(guò)來(lái)的參數*/

    if (!PyArg_ParseTuple(args, \"ii:add_int\", &a, &b)) {

        return NULL;

     }

    result = add_int(a, b);

    return Py_BuildValue(\"i\", result);

}

本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
python擴展實(shí)現方法
怎么給 Python 寫(xiě) C 擴展?
ScalersTalk成長(cháng)會(huì )Python小組第22周學(xué)習筆記
在windows上擴展python
c/c 調用python類(lèi)/函數 代碼
C++調用Python淺析
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久