如何理解Python嵌入較低層次中的常用兩種函數(shù)

這期內(nèi)容當(dāng)中小編將會(huì)給大家?guī)?lái)有關(guān)如何理解Python嵌入較低層次中的常用兩種函數(shù),文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

渭城網(wǎng)站建設(shè)公司成都創(chuàng)新互聯(lián)公司,渭城網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為渭城上千家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\成都外貿(mào)網(wǎng)站制作要多少錢,請(qǐng)找那個(gè)售后服務(wù)好的渭城做網(wǎng)站的公司定做!

如果需要在C程序中用Python腳本傳遞參數(shù),或者獲得Python腳本的返回值,則要使用更多的函數(shù)來(lái)編寫C程序。由于Python有自己的數(shù)據(jù)類型,因此在C程序中要使用專門的API對(duì)相應(yīng)的數(shù)據(jù)類型進(jìn)行操作。常用的函數(shù)有以下幾種。

1.?dāng)?shù)字與字符串處理

在Python/C API中提供了Py_BuildValue()函數(shù)對(duì)數(shù)字和字符串進(jìn)行轉(zhuǎn)換處理,使之變成Python中相應(yīng)的數(shù)據(jù)類型。其函數(shù)原型如下所示。

PyObject* Py_BuildValue( const char *format, ...)

其參數(shù)含義如下。

· format:格式化字符串,如表8-1所示。

Py_BuildValue()

函數(shù)中剩余的參數(shù)即要轉(zhuǎn)換的C語(yǔ)言中的整型、浮點(diǎn)型或者字符串等。其返回值為PyObject型的指針。在C語(yǔ)言中,所有的Python類型都被聲明為PyObject型。

2.列表操作

在Python/C API中提供了PyList_New()函數(shù)用以創(chuàng)建一個(gè)新的Python列表。PyList_New()函數(shù)的返回值為所創(chuàng)建的列表。其函數(shù)原型如下所示。

PyObject* PyList_New( Py_ssize_t len)

其參數(shù)含義如下。

· len:所創(chuàng)建列表的長(zhǎng)度。

當(dāng)列表創(chuàng)建以后,可以使用PyList_SetItem()函數(shù)向列表中添加項(xiàng)。其函數(shù)原型如下所示。

  1. int PyList_SetItem( PyObject *list,
     Py_ssize_t index, PyObject *item) 

其參數(shù)含義如下。

· list:要添加項(xiàng)的列表。

· index:所添加項(xiàng)的位置索引。

· item:所添加項(xiàng)的值。

同樣可以使用Python/C API中PyList_GetItem()函數(shù)來(lái)獲取列表中某項(xiàng)的值。PyList_GetItem()函數(shù)返回項(xiàng)的值。其函數(shù)原型如下所示。

  1. PyObject* PyList_GetItem
    ( PyObject *list, Py_ssize_t index) 

上述就是小編為大家分享的如何理解Python嵌入較低層次中的常用兩種函數(shù)了,如果剛好有類似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

網(wǎng)站題目:如何理解Python嵌入較低層次中的常用兩種函數(shù)
地址分享:http://bm7419.com/article10/ipopgo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供移動(dòng)網(wǎng)站建設(shè)、網(wǎng)站內(nèi)鏈、網(wǎng)站建設(shè)、網(wǎng)站營(yíng)銷、商城網(wǎng)站、電子商務(wù)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

搜索引擎優(yōu)化