Я пишу скрипт для запуска различных удаленных тестов, и одно из значений, которое мне нужно получить, входит в большую структуру, которая в настоящее время имеет 38 членов.IDL имеет структуру в качестве параметра «inout» для функции, чтобы получить эти данные:
long GetCartridgeInfo(inout CartridgeInfo cartridgeInfo );
Проблема в том, что иногда члены добавляются или удаляются, и я не хочу обновлять своисценарий только потому, что кто-то решил вставить новый фрагмент данных в структуру.Есть ли способ создать экземпляр этого класса структуры без необходимости заполнения каждого из 38 членов?Мне просто нужно что-то передать функции, которая не вызывает omniORB.BAD_PARAM_WrongPythonType.
Структура имеет все виды различных типов, поэтому я не могу просто сделать что-то вроде:
initArgs = [0] * 38
info = _GlobalIDL.CartridgeInfo(*initArgs)
Это выглядит примерно так:
initArgs = [0]*4 + ["0"*16] + ["0"] + ["0"*16] + ["0"*36] + [0]*2 + ["0"*16] + [0]*3 + ["0"*30] + [0.0] + [0]*13 + ["0"*16] + [0]*4 + ["0"*8]
info = _GlobalIDL.CartridgeInfo(*initArgs)
Я хочу сделать это без статического определения initArgs:
info = _GlobalIDL.CartridgeInfo(*initArgs)
res = self.orb.GetCartridgeInfo(info)
material = res[1].materialDisplayName