Python结构中继承的子类的示例

时间:2013-01-14 18:43:00

标签: python

在阅读Python的struct模块的文档时,有关如何使用struct Class的说明还有待改进。也就是说,直到我意识到它不是一个继承来创建子类的类,例如,可能会使用threading.Thread class object。是Doug Hellmann's PyMOTW让我明白这一点。

我很好奇,是否可以创建struct子类?我想这些可用于向struct对象添加功能,例如创建依赖于数据流本身的格式。对此的一种用途可以是具有可变长度字段的数据流,其长度包括在流的早期部分中。或者根据早期字段中设置的标志包含或省略某些字段。

例如,假设我有以下数据流:

>>> data = '\x01\x00\x04\x73\x70\x61\x6d'

我打开包装:

>>> struct.unpack('>BH4s', data)
(1, 4, 'spam')

其中第一个元素是data_type,第二个元素是length,第三个是可变长度字符串,其长度由第二个元素指定。

如果我想创建一个'解包器'来查看length部分以获取有关如何解压缩其余数据流的信息,那么创建struct子类是一种好方法去吧?那里有这种事情的例子吗?

0 个答案:

没有答案