2
我正在玩一些ctypes來按摩一些我寫入Python的C代碼。 C代碼在很大程度上依賴於結構和聯合,現在來看,在Python的快速的解決方案是子類通過ctypes的那些:在ctypes子類上使用__repr __()?
即,從這樣的:
struct foo {
uint32_t a;
uint32_t b;
uint16_t c;
uint16_t d;
};
要這樣:
from ctypes import *
class Foo(Structure):
_fields_ = [("a", c_uint),
("b", c_uint),
("c", c_ushort),
("d", c_ushort)]
除此之外,如果我折騰了__repr__()
定義到Python類,然後在實例中使用repr()
,所有我得到的回覆是<class 'Foo'>
(或類似的意思,R從這裏回憶一下)。
所以我想知道是否有利用repr()
,並嘗試以獲得最佳的Python和C之間,或兩全其美的方式,如果我應該看看元類和使用struct
庫包裝/解壓縮字節到正確的Python類。
想法?
那麼,我手動爲它建立ctypes之後,在Python 2.4上執行此操作。可能是問題的一部分? – Kumba
不知何故,我發現不太可能,我只是[嘗試](http://pastie.org/3952521)在一臺服務器與python2.4,它的工作。 – mata
好吧,粉筆這一個到PEBKAC或PICNIC。我在做'f = Foo',而不是'f = Foo()'。 Herp derp。 – Kumba