Passing arguments to super class __init__ in python
考虑以下类别:
1 2 3 | class Car(): def __init__(self, model): self.model = model |
如果我想定义特定的模型,我可以这样做:
1 2 3 4 | class FordGT(Car): model ="Ford GT" def __init__(self): Car.__init__(self,self.model) |
这样,我可以创建大量不同的车型。但是,这样做的唯一问题是,对于每个车型,我都要重复init函数。
1 2 | def __init__(self): Car.__init__(self,self.model) |
代码重复对我来说总是坏代码的标志。我怎么修这个?是否可以在不对子级使用init的情况下将init参数传递给父级?
首先,你需要抛开这个宽泛的假设。重复的代码并不一定是坏代码,如果通过重复一些东西,可以使代码更清晰。
第二,尽管如此,我不明白为什么您需要