我正在尝试构建一个自定义界面,该界面将根据字典输入动态生成 outputspec 属性。但是,当我这样做时,输出没有出现.help()
这是我之前的内容,如果我运行help()
它将显示节点的输入和输出。
class _GatherInputsOutputSpec(TraitedSpec):
a_file = traits.Str()
b_file = traits.Str()
c_file = traits.Str()
class GatherInputs(SimpleInterface):
def __init__(self, dict_a):
super().__init__()
self.dict_a = dict_a
self.outputspec = _GatherInputsOutputSpec
但是当我尝试像下面那样动态构建 outputspec 类时,当我这样做时输出不会显示help()
并且run()
功能也无法正常工作。
class Context(SimpleInterface):
def __init__(self, dict_a):
super().__init__()
self.dict_a = dict_a
self.outputspec = self._outputspec_build(dict_a)
@staticmethod
def _outputspec_build(dict_a):
outputspec_class = type("ConfigOutputSpec", (nipype.interfaces.base.specs.TraitedSpec, ),{'__module__': '__main__'})
for k in dict_a.get('inputs').keys():
setattr(outputspec_class, k, traits.Str())
return outputspec_class
我是否错误地设置了属性?