def __new__(mcs, clsname, clsbases, clsdict):
headers = clsdict.get('__header__', [])
if headers:
header_attrs, header_fmt = zip(*headers)
header_format_order = clsdict.get('__byte_order__', '>')
header_format = [header_format_order] + list(header_fmt)
header_struct = struct.Struct(''.join(header_format))
clsdict['__slots__'] = ('_fields', '_view', '_payload')
clsdict['_header_fields'] = tuple(header_attrs)
clsdict['_header_bytes_order'] = header_format_order
clsdict['_header_struct'] = header_struct
clsdict['_header_size'] = header_struct.size
return type.__new__(mcs, clsname, clsbases, clsdict)
评论列表
文章目录