Tag: 基地级

kotlin,如何简化向基类构造函数传递参数?

我们有一个包,我们正在寻求从python转换为kotlin,然后才能够使用该包迁移系统。 在这个包里面有一组类,它们是所有的变体,或者是一个公共基类的“风味”。 大部分代码都在基类中,它有大量的可选参数。 所以考虑: 打开class BaseTree(val height:Int = 10,val root:Boolean = true,// ……更多! class FruitTree(val fruitSize, height:Int=10, roots:Boolean=true, // now need all possible parameters for any possible instance ):BaseTree(height=height, roots=roots //… yet another variation of same list 代码实际上不是树,我只是认为这是一个简单的方式来传达这个想法。 基类有大约20个参数,大约有10个子类,每个子类有效地需要从基类重复相同的两个变量参数列表。 一个真正的噩梦,如果参数列表改变! 那些来自Java背景的人可能会评论“20个参数太多”,可能会错过这是可选参数 ,这是影响设计方面的语言特性。 20个必需的参数是疯狂的,但是10个或者甚至20个可选参数并不罕见,例如检查sqlalchemy表 。 在python中,你可以调用基类的构造函数: def __init__(self, special, *args, **kwargs): super().__init(*args, **kwargs) # pass all […]