Message 170487 - Python tracker (original) (raw)
The decision was made in order to be able to cast back and forth between known formats. Otherwise one would be able to cast from '<d' to 'B' but not from 'B' to '<d'.
Python 3.4 will have support for all formats in struct module syntax, but all non-native formats will be far slower than the native ones.
You can still pack/unpack directly using the struct module:
import ctypes, struct d = ctypes.c_double() m = memoryview(d) struct.pack_into(m.format, m, 0, 22.7) struct.unpack_from(m.format, m, 0)[0] 22.7