Python嵌入較低層次中常用兩種函數(shù)的介紹
本文主要介紹的是在Python嵌入較低層次中常用的相關(guān)的兩種函數(shù)的相關(guān)介紹,還有相關(guān)的兩種函數(shù)的實際應(yīng)用步驟與相關(guān)代碼的具體介紹,以下就是文章的相關(guān)內(nèi)容的具體介紹,望你瀏覽完會得到你想要的東西。
在上一節(jié)的例子中只使用簡單的函數(shù)就完成了在C語言中嵌入Python。但如果需要在C程序中用Python腳本傳遞參數(shù),或者獲得Python腳本的返回值,則要使用更多的函數(shù)來編寫C程序。由于Python有自己的數(shù)據(jù)類型,因此在C程序中要使用專門的API對相應(yīng)的數(shù)據(jù)類型進行操作。常用的函數(shù)有以下幾種。
1.數(shù)字與字符串處理
在Python/C API中提供了Py_BuildValue()函數(shù)對數(shù)字和字符串進行轉(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語言中的整型、浮點型或者字符串等。其返回值為PyObject型的指針。在C語言中,所有的Python類型都被聲明為PyObject型。
2.列表操作
在Python/C API中提供了PyList_New()函數(shù)用以創(chuàng)建一個新的Python列表。PyList_New()函數(shù)的返回值為所創(chuàng)建的列表。其函數(shù)原型如下所示。
- PyObject* PyList_New( Py_ssize_t len)
其參數(shù)含義如下。
· len:所創(chuàng)建列表的長度。
當列表創(chuàng)建以后,可以使用PyList_SetItem()函數(shù)向列表中添加項。其函數(shù)原型如下所示。
- int PyList_SetItem( PyObject *list,
Py_ssize_t index, PyObject *item)
其參數(shù)含義如下。
· list:要添加項的列表。
· index:所添加項的位置索引。
· item:所添加項的值。
同樣可以使用Python/C API中PyList_GetItem()函數(shù)來獲取列表中某項的值。PyList_GetItem()函數(shù)返回項的值。其函數(shù)原型如下所示。
- PyObject* PyList_GetItem
( PyObject *list, Py_ssize_t index)
以上的內(nèi)容就是對在Python嵌入較低層次中常用的函數(shù)的相關(guān)介紹。
【編輯推薦】