我有一个 Packet 类,有没有办法将它的对象转换为字节数组?
from abc import abstractmethod
class Packet:
@abstractmethod
def __init__(self, name, data):
self.name = name
self.data = data
packet = Packet("packet-01", None)
答案 0 :(得分:0)
您可以使用 pickle
包将对象转换为。 bytearray
。
In [97]: from abc import abstractmethod
...:
...: class Packet:
...: @abstractmethod
...: def __init__(self, name, data):
...: self.name = name
...: self.data = data
...:
In [98]: packet = Packet('packet-01',None)
In [99]: packet
Out[99]: <__main__.Packet at 0x7f9d540cf040>
In [100]: import pickle
In [101]: byte = pickle.dumps(packet)
In [102]: byte
Out[102]: b'\x80\x04\x95:\x00\x00\x00\x00\x00\x00\x00\x8c\x08__main__\x94\x8c\x06Packet\x94\x93\x94)\x81\x94}\x94(\x8c\x04name\x94\x8c\tpacket-01\x94\x8c\x04data\x94Nub.'
您可以阅读关于泡菜 here 的文章。