为什么在创建list类的子类时不使用构造函数?

时间:2013-08-01 01:03:42

标签: python constructor built-in-types

这是一个例子。

>>> class MyList(list):
>>>    def __sub__(self, other):
>>>        L = self[:]
>>>        for x in other:
>>>            if x in L: L.remove(x)
>>>        return L

>>> L = MyList([1, 2, 3, 'spam', 4, 5])
>>> L = L - ['spam']
>>> print L
[1, 2, 3, 4, 5]

当class接受参数时,它需要 init ,构造函数才能得到。 但上面没有 init 方法。怎么可能呢?

提前致谢:)

1 个答案:

答案 0 :(得分:2)

当您继承子类时,除非在子类定义中覆盖它们,否则继承父类的方法。因此,您的代码使用基类列表的__init __()函数。