在omniORBpy中,有没有一种方法可以自动将结构的所有成员初始化为正确的类型?

时间:2019-04-05 13:47:04

标签: python struct corba omniorb

我正在编写一个脚本来运行各种远程测试,我需要获取的值之一来自一个大型结构,该结构目前有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

0 个答案:

没有答案