我有用於包括類似功能的裝置的C庫:Python擴展用C - 通過列出來回
int GetDevInfo(int *devices);
在這種情況下,設備是可能已經定義這樣一個整數數組:
int devices[10]
該函數將通過硬件總線循環查找活動設備。發現它們時,它會將設備號碼放入devices[]
中的下一個可用點。因此,例如掃描前:
devices = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
和全局變量DeviceCount
知道有0個活動的。該功能發揮了神奇的作用,並決定設備5和8處於活動狀態。所以後來:
devices = {5, 8, 0, 0, 0, 0, 0, 0, 0, 0}
和DeviceCount
知道有2
我想Python的功能是這樣的:
devices = list(range(64))
for i in range(0,len(devices)): # Set them all to 0
devices[i] = 0
DeviceCount = 0
# Now we'll update it
DeviceCount = myModule.GetDevInfo(DeviceCount, devices)
當它返回,DeviceCount
可能被設置爲2,和設備的外觀像:
[5, 8, 0, 0, 0, 0, 0, 0, 0, 0]
我已經寫了代碼爲其他包裝傳入整數並傳回字符串,但我沒有找到紐約網絡智慧來幫助我。我知道,如果我做這樣的事情:
def f(a, data):
a.append(data)
l = [1, 2, 3]
f(l, 4)
我得到l=[1, 2, 3, 4]
但它並不明顯如何得到一個Python的包裝,效果C.
Thannks提前,並且還有披薩的錢在裏面,任何人都可以幫忙!