我正在尝试保留python类初始化的顺序,类似于您可能想到的C语言中的结构字段。
import struct
from collections import OrderedDict
class MyClass(OrderedDict):
PACKET_FORMAT = '<BBB'
def __init__(self, packet):
super(MyClass, self).__init__()
(a, b, c) = struct.unpack(self.PACKET_FORMAT, packet)
self.a = a
self.b = b
self.c = c
mc = MyClass(bytearray([0x01, 0x02, 0x03]))
print(mc.__dict__)
我认为OrderedDict
在这里很重要,但似乎没有意义。我的订单未保存:
{'a': 1, 'c': 3, 'b': 2}
我期望/想要:
{'a': 1, 'b': 2, 'c': 3}