我有一个类Query:
class Query
def __init__(self, keyword, **kwargs):
self.keyword = keyword
self.parameters = kwargs
def __repr__(self):
return "Query keyword %s, params %s" % (self.keyword, self.parameters)
到目前为止很好。现在我创建了一个继承自它的类:
class SimpleQuery(Query):
def __init__(self, keyword, count, age):
Query(keyword, count, age)
如果我创建一个实例,我会......
>>> m = SimpleQuery(keyword, count=120, age=100)
TypeError: __init__() takes exactly 2 arguments (4 given)
我当然希望它能够按照“查询关键字关键字,参数{计数:120,年龄:100}”的方式返回一个对象。“我做错了什么?
答案 0 :(得分:3)
调用超类方法:
class SimpleQuery(Query):
def __init__(self, keyword, count, age):
super(SimpleQuery, self).__init__(keyword, count=count, age=age)
如果您使用Python 3.x:
class SimpleQuery(Query):
def __init__(self, keyword, count, age):
super().__init__(keyword, count=count, age=age)
<强>更新强>
如果您使用Python 2.x并且Query
类ID为旧式类,请执行以下操作:
class SimpleQuery(Query):
def __init__(self, keyword, count, age):
Query.__init__(self, keyword, count=count, age=age)