我有一组python类,它们表示网络数据结构(也用于磁盘存储)。我希望能够调用类上的write()
,并获得它的标准二进制表示。你知道吗
课程可以结构包通过pack()
方法将它们转换为二进制表示。我可以覆盖__bytes__
方法来调用self.pack()
,这样write(bytes(myobject))
可以工作,但不能写入(myobject):
TypeError: a bytes-like object is required, not 'MyClassName'
有什么我可以重写的,使write()
在没有显式bytes()
转换的情况下工作吗?可能我的类必须是字节的子类,但是。。。我想我还是要挂接pack()
方法调用吧?你知道吗
可以使类成为
bytearray
的子类,并使任何可以更改对象值的方法通过__setitem__
方法(即使用方括号)更新bytearray的值:相关问题 更多 >
编程相关推荐