當前位置:首頁 » 編程語言 » python傳參數組

python傳參數組

發布時間: 2022-07-26 17:56:39

① C++調用時python時,如何傳入數組做為參數

題主,你基本操作沒什麼問題,有幾個小地方要修改一下,修改如下:


你的源碼

PyObject* list = PyList_New(3);
for (size_t i = 0; i < 3; i++)
PyList_Append(list, Py_BuildValue("i", i));

PyEval_CallObject(pFunc, list);

--------------------------------------------------------------------------------------

修改後,應該是這樣
PyObject*pArgs=NULL;

PyObject*list=PyList_New(0);//3改成0
pArgs=PyTuple_New(1);//定義1個參數

for(size_ti=0;i<3;i++)
PyList_Append(list,Py_BuildValue("i",i));//這樣才能用Append,
PyTuple_SetItem(pArgs,0,list);//將列表賦給參數
PyEval_CallObject(pFunc,list);//傳入參數,調用函數

注意事項:PyList_New(0)初始化0的時候,應該用Append初始化
PyList_New(3)初始化3個時候,應該用SetItem初始化
如果用Append的話,會出現[NULL,NULL,NULL]的情況

我在給一個完整的:

Python :(hello.py)

defTestList(nlist):
print(nlist)
return


一般參數都是已元組形式傳入的

	Py_Initialize();

PyRun_SimpleString("importsys");
PyRun_SimpleString("sys.path.append('./')");

PyObject*pMole=NULL;
PyObject*pList=NULL;
PyObject*pFunc=NULL;
PyObject*pArgs=NULL;

pMole=PyImport_ImportMole("hello");
pFunc=PyObject_GetAttrString(pMole,"TestList");
pArgs=PyTuple_New(1);
pList=PyList_New(0);
for(inti=0;i<3;i++)
{
PyList_Append(pList,Py_BuildValue("i",i));
}
PyTuple_SetItem(pArgs,0,pList);
pRet=PyEval_CallObject(pFunc,pArgs);

Py_Finalize();

最後輸出的:[0, 1, 2]

② python如何傳遞數組給自定義函數,不要循環語句

void fun(a,10) 將數組a的首地址賦給指針s
{
int i; i 計的是這數組中有幾個字母
for (;*s;s++) 每循環一次,s後移一位,判斷結束循環的條件s指向的內容為" \0 "
{
if(*s>='a'&&*s<='z'||*s>='A'&&*s<='Z')
i++;
}

③ 如何用python向C#的DLL函數傳遞二維數組

在什麼環境呢?在web下的話,可以通過json來傳遞;winform的話,估計要通過中轉語言來了,比如C(自己想的,呵呵)

④ 怎樣獲得想python中傳遞的參數數組

全自動安裝:easy_install
jieba
或者
pip
install
jieba
半自動安裝:先下載http://pypi.python.org/pypi/jieba/
解壓後運行python
setup.py
install
手動安裝:將jieba目錄放置於當前目錄或者site-packages目錄
通過import
jieba
來引用
(第一次import時需要構建Trie樹,需要幾秒時間)!

⑤ 對Python中數組的幾種使用方法總結

對Python中數組的幾種使用方法總結
今天小編就為大家分享一篇對Python中數組的幾種使用方法總結,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
二維數組的初始化
matirx_done = [[0 for i in range(0, len(matirx))]for j in range(0, len(matirx[0]))]
就將其初始化為一個與matrix相同大小的元素全為 0 的矩陣
數組的多級排序
在數組 idea_collect = [[3, 1, 2], [3, 2, 1], [3, 2, 2], [3, 1, 1]] 中, 先按照第二項排列, 再按照第三項倒序排列 可寫為:
idea_collect.sort(key=lambda x: (x[1], -x[2]))
其中, x[1] 代表第二項正序排列, -x[2] 代表第三項倒序排列
排列結果為 [[3, 1, 2], [3, 1, 1], [3, 2, 2], [3, 2, 1]]
在一個 class 中多個函數不傳參使用同一個數組
如例所示:
class Partition:
def __init__(self):
self.num_complete = []

def partition(self, num, start, end):
self.num_compelete = num

def partition_core(self):
del self.num_compelete[0]
其中,self.num_compelete就是 class 中兩個函數同時可以直接調用的數組, 不過最好先在def __init__中聲明這個數組
以上這篇對Python中數組的幾種使用方法總結就是小編分享給大家的全部內容了

⑥ python 調用 C++的DLL,函數參數是數組怎麼處理

給你一個例子看看,你就知道怎麼做了

C++的介面

typedef struct
{
unsigned long DeviceType;
int Handle;
int NumberOfClients;
int SerialNumber;
int MaxAllowedClients;
}NeoDevice;
int _stdcall icsneoFindNeoDevices(unsigned long DeviceTypes, NeoDevice *pNeoDevices, int *pNumberOfDevices);


Python調用的代碼:

class NeoDevice(Structure):
_fields_ = [("DeviceType",c_ulong),
("Handle",c_int),
("NumberOfClients",c_int),
("SerialNumber",c_int),
("MaxAllowedClients",c_int)]
class cNeoVICan(CCanBase):
def __init__(self):
neoVi = windll.icsneo40
self.icsneoFindNeoDevices = neoVi.icsneoFindNeoDevices
if __name__ == "__main__":
canBus = cNeoVICan()
print canBus.icsneoGetDLLVersion()
iNumberOfDevices = (NeoDevice * 10)()
num = c_int()
iResult = canBus.icsneoFindNeoDevices(c_ulong(65535), cast(iNumberOfDevices, POINT(NeoDevice)), byref(num))

⑦ Python如何把數值放到一個數組裡面

Python把數值放到一個數組裡面的步驟如下:

1.第一步,定義一個列表a,賦值為1-9這九個數字元素,注意表示形式。

熱點內容
齊碼編程 發布:2025-01-25 12:29:26 瀏覽:454
靜態qt編譯動態庫 發布:2025-01-25 12:26:23 瀏覽:441
linuxforgrep 發布:2025-01-25 12:19:40 瀏覽:427
中國移動智能寬頻如何配置 發布:2025-01-25 11:59:01 瀏覽:774
安卓手機定時關機如何設置 發布:2025-01-25 11:50:06 瀏覽:318
數組緩存區 發布:2025-01-25 11:17:00 瀏覽:875
安卓手機鍵盤上浮怎麼調回來 發布:2025-01-25 11:17:00 瀏覽:260
editplusjava編譯 發布:2025-01-25 11:11:56 瀏覽:232
手機迅雷加密安卓 發布:2025-01-25 10:39:00 瀏覽:211
hdmi源碼功放 發布:2025-01-25 10:38:57 瀏覽:598