我有一个有两个必须有参数的类,我想为它提供一个可选参数的字典。我在 tensorflow optimizers中看到过类似风格的类定义。一个最小的例子是这样的:class Dataset: def __init__(self, source, target, **kwargs): self.source = source self.target = target self.shuffle = kwargs['shuffle'] def shuffle(self): return self if __name__ == "__main__": source = [1, 2, 3, 4] targets = [0, 0, 1, 1] kwargs = { 'shuffle' : False, 'shift' : 10 } trainset = Dataset(source, targets, kwargs)并产生错误: File "test.py", line 20, in <module> trainset = Dataset(source, targets, *kwargs)TypeError: __init__() takes 3 positional arguments but 5 were given除了帮助我修复错误之外,如果这种混合了固定参数和可变参数的类定义不是最佳实践,我将不胜感激。解决方案:在评论和回复之后,解决方案是使用Dataset(source, targets, **kwargs).
添加回答
举报
0/150
提交
取消