Python Glossary English

все Python 3structпонятие

struct.Struct

формат

Скомпилированный формат struct: один раз разбирает строку формата и даёт методы pack, unpack, iter_unpack и размер size.

Синтаксис

s = struct.Struct(format)  # s.pack(...), s.unpack(buf), s.size, s.format

Выигрыш в скорости меньше, чем кажется: модульные функции struct кэшируют недавние форматы сами. Главная польза — формат записи объявлен один раз и назван, а size заменяет повторный calcsize. Без префикса порядка ('<', '>', '!') размер и раскладка нативные, с выравниванием, и файл, записанный на одной машине, может не прочитаться на другой.

Примеры

import struct
rec = struct.Struct('<hI')  # short + unsigned int, little-endian
print(rec.size)  # → 6
data = rec.pack(-1, 7)
print(rec.unpack(data))  # → (-1, 7)
import struct
point = struct.Struct('<ff')
buf = point.pack(1.5, 2.0) + point.pack(3.0, 4.5)
print(list(point.iter_unpack(buf)))  # → [(1.5, 2.0), (3.0, 4.5)]

См. также

Частые ошибки

Открыть в полном глоссарииdocs.python.orgСообщить о неточности