您好,登錄后才能下訂單哦!
這期內(nèi)容當(dāng)中小編將會(huì)給大家?guī)?lái)有關(guān)如何理解Python嵌入較低層次中的常用兩種函數(shù),文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
如果需要在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ù)原型如下所示。
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ù)原型如下所示。
PyObject* PyList_GetItem
( PyObject *list, Py_ssize_t index)
上述就是小編為大家分享的如何理解Python嵌入較低層次中的常用兩種函數(shù)了,如果剛好有類似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。