【发布时间】:2013-10-18 18:36:57
【问题描述】:
我有一个 AbstractDataHandle 类,带有他的 init 方法和一个 Classifier。我想在 Classifier 中有两个构造函数,Java 之类的。一个继承自它的超类,一个是全新的。
可能是这样的(但我打算“保留”这两个构造函数):
class AbstractDataHandle():
def __init__(self, elements, attributes, labels):
self._load(elements, attributes, labels)
class Classifier(AbstractDataHandle):
def __init__(self, classifier="LinearSVC", proba=False):
self._fit(classifier, proba)
我可以在一个类中有两个构造函数吗? 如果是,我可以从超类继承构造函数并添加一个新构造函数吗?
提前谢谢你。
【问题讨论】:
-
你可以让子类构造函数通过
superstackoverflow.com/questions/576169/…调用超类构造函数 -
感谢您的回答。问题是,调用 super,我将只有一个构造函数。如果参数的数量(和/或类型)不同,则在 Java 中可能有多个。我想知道python中是否存在同样的东西。
-
您可以使用
@classmethod来创建任意数量的类似构造函数的方法。 -
具体为什么需要两个构造函数?你可能想看看类方法来模拟这种行为stackoverflow.com/a/141777/735204
标签: python oop inheritance python-2.7 constructor