我正在编写一个脚本来运行各种远程测试,我需要获取的值之一来自一个大型结构,该结构目前有38个成员。 IDL将该结构作为函数的“ inout”参数来获取此数据:
long GetCartridgeInfo(inout CartridgeInfo cartridgeInfo );
问题在于有时会添加或删除成员,而我不想仅仅因为有人决定将新的数据填充到结构中而更新脚本。有没有一种方法可以创建此struct类的实例,而不必填写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