Есть ли разница между использованием struct.calcsize () и len () в Python 3? - PullRequest
0 голосов
/ 30 мая 2020

Всегда ли использовать struct.calcsize() то же самое, что просто использовать len() для получения количества байтов в структуре?

Например:

>>> import struct
>>> a = struct.pack('I', 107)
>>> len(a)
4
>>> struct.calcsize('I')
4 

По моему небольшому набору тестов они, похоже, согласны. Есть ли причина предпочесть одно другому? Насколько безопасно использовать их как взаимозаменяемые?

1 Ответ

3 голосов
/ 30 мая 2020

struct.calcsize не требует фактической упаковки данных. Это экономит время и память и более удобно, если у вас фактически нет данных для упаковки.

Если у вас есть строка формата и вы хотите знать, насколько велики результаты упаковки данных в этом формате будет будет, используйте struct.calcsize. Если у вас уже есть упакованные данные и вы хотите узнать, насколько они велики, используйте len.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...