На случай, если кто-нибудь посмотрит на этот вопрос позже ...
Это утверждение должно быть эквивалентно коду в исходном вопросе:
>>> tuple( struct.pack("!I", number) )
('\x00', '\x00', '\x00', 'd')
И я не думаю, что это имеет значениеПорядок байтов хоста:
Если ваши целые числа больше, чем int32, вы можете использовать "!Q"
в вызове pack()
для int64 (если ваша система поддерживает Q
).
И list()
или дажеbytearray()
будет работать вместо tuple()
.
Обратите внимание, что результатом является последовательность str
объектов (каждый из которых содержит один байт), а не целые числа.Если у вас должен быть список целых чисел, вы можете сделать это:
[ ord(c) for c in struct.pack("!I", number) ]
[0, 0, 0, 100]
... или это:
>>> map( ord, tuple( struct.pack("!I", number) ) )
[0, 0, 0, 100]
Но использование map()
приводит к некоторому беспорядку.