gpt4 book ai didi

python - 比较简单的 Python ctypes 数据类型

转载 作者:行者123 更新时间:2023-11-28 16:59:42 25 4
gpt4 key购买 nike

>>> ctypes.c_ushort(37099) == ctypes.c_ushort(37099)
False

这些似乎不相等,因为 PyCSimpleType 对象没有比较运算符。

省略这些有什么原因吗?看来必须使用:

>>> ctypes.c_ushort(37099).value == ctypes.c_ushort(37099).value
True

最佳答案

根据 ctypes._SimpleCData 的文档及其父类(super class) ctypes._CData , “所有 ctypes 类型实例都包含一个存储 C 兼容数据的内存块。”

据推测,ctypes.c_ushort(37099) 的每次调用都对应一个新的内存块,从而使它们之间的相等比较为假。该文档还指出 value 属性包含对象的实际值。

>>> import ctypes
>>> val1 = ctypes.c_ushort(37099)
>>> val2 = ctypes.c_ushort(37099)
>>> ctypes.addressof(val1)
2193186894992
>>> ctypes.addressof(val2)
2193186895376

关于python - 比较简单的 Python ctypes 数据类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55386315/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com