import ctypes class SubStruct(ctypes.Structure): _fields_ = [('magic', ctypes.c_char * 4)] def __init__(self, *args, **kwargs): print(args, kwargs) def __new__(self, *args, **kwargs): print(args, kwargs) SubStruct.from_buffer_copy(b'new?')