gpt4 book ai didi

Python ctypes.BigEndianStructure 无法存储值

转载 作者:行者123 更新时间:2023-12-02 05:16:41 26 4
gpt4 key购买 nike

我遇到了 ctypes.BigEndianStructure 的麻烦。我无法获得我为其中一个字段设置的值。我的代码是这样的。

import ctypes
class MyStructure(ctypes.BigEndianStructure):
_pack_ = 1
_fields_ = [
('fx', ctypes.c_uint, 7),
('fy', ctypes.c_ubyte, 1)
]

x = MyStructure()

它打印 0 作为异常(exception):

print x.fy  # Prints 0

然后我给它设置了一个值,但它仍然打印 0:

x.fy = 1
print x.fy # Still prints 0

最佳答案

我不知道为什么你所做的不起作用,这肯定是奇怪的行为。我认为这个替代代码有效。

import ctypes
class MyStructure(ctypes.BigEndianStructure):
_pack_ = 1
def __init__(self):
self.fx=ctypes.c_uint(7)
self.fy = ctypes.c_ubyte(1)

x = MyStructure()
x.fy = 7
print x.fy # prints 7

或者没有构造器::

import ctypes
class MyStructure(ctypes.BigEndianStructure):
_pack_ = 1
fx = ctypes.c_uint(7)
fy = ctypes.c_ubyte(1)

x = MyStructure()
x.fy = 7
print x.fy # prints 7

我个人从未使用过 fields 属性,所以我无法谈论奇怪的行为。

关于Python ctypes.BigEndianStructure 无法存储值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38827440/

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