У меня есть класс Packet, есть ли способ преобразовать его объект в массив байтов? from abc import abstractmethod class Packet: @abstractmethod def __init __ (self, name, data): self.name ...

1
FLAVIOS 18 Дек 2020 в 23:08

1 ответ

Лучший ответ

Вы можете использовать пакет 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.'

Вы можете прочитать о pickle здесь.

0
Rajat Mishra 18 Дек 2020 в 20:13