struct 模块还定义了以下类型:
class struct.Struct(format)
返回一个新的 Struct 对象,它会根据格式字符串 format 来写入和读取二进制数据。 一次性地创建 Struct 对象并调用其方法相比使用同样的格式调用 struct 函数更为高效,因为这样格式字符串只需被编译一次。
注解 传递给 Struct 和模块层级函数的已编译版最新格式字符串会被缓存,因此只使用少量格式字符串的程序无需担心重用单独的 Struct 实例。
已编译的 Struct 对象支持以下方法和属性:
pack(v1, v2, ...)
等价于 pack() 函数,使用了已编译的格式。 (len(result) 将等于 size。)
pack_into(buffer, offset, v1, v2, ...)
等价于 pack_into() 函数,使用了已编译的格式。
unpack(buffer)
等价于 unpack() 函数,使用了已编译的格式。 缓冲区的字节大小必须等于 size。
unpack_from(buffer, offset=0)
等价于 unpack_from() 函数,使用了已编译的格式。 缓冲区的字节大小从位置 offset 开始必须至少为 size。
iter_unpack(buffer)
等价于 iter_unpack() 函数,使用了已编译的格式。 缓冲区的大小必须为 size 的整数倍。
3.4 新版功能.
format
用于构造此 Struct 对象的格式字符串。
在 3.7 版更改: 格式字符串类型现在是 str 而不再是 bytes。
size
计算出对应于 format 的结构大小(亦即 pack() 方法所产生的字节串对象的大小)。