這是不一致:如何訪問ctypes結構的屬性,就好像它們是ctypes,而不是通過給定的包裝?
from ctypes import *
class S(Structure):
_fields_ = [("x", POINTER(c_int)), ("y", c_int)]
o = S()
print o.x
print o.y
返回
<__main__.LP_c_int object at 0x10d3d08c0>
0
因此,在一種情況下,它返回一個類型,在另一種情況下,它直接返回該值。
我有一些更通用的代碼,我總是需要通過一個類型的實例(這也是可寫的,即寫入它將意味着在上面的示例中修改o
)。對於o.x
,這沒關係。但不適用於o.y
。
我怎樣才能得到o.y
的c_int
實例?
請停止標記您的標題。 –
@Tomalak Geret'kal:我認爲他們更有用/可以這樣理解。另外,標籤稍有不同。標記定義了這個問題與什麼有關(僅此而已)。通過在標題中加入它,我也定義了這個問題的主題。說什麼是話題是更多的信息,而不僅僅是說它與什麼有關。 – Albert
在標題中書寫標籤是多餘的。我們已經有一個清晰,簡潔,一致和可轉位的標籤系統。你在標題開頭寫了一個毫無意義的「Python:」就是打破了SO的期望(看看你的標題欄),給你的標題增加了雜亂的噪音,並纏繞着我。 「標題」字段的名稱是有原因的!寫出標題,而不是一些「主題」。沒有更多,沒有更多。 SO不是留言板或聊天論壇。 (而且我看不出寫「Python」是寫「Python」的「更多信息」。) –