子类内置列表

时间:2010-02-10 09:08:44

标签: python list subclass built-in

我想继承list类型,并且切片返回后代类型的对象,但它返回list。这样做的最小代码方式是什么?

如果没有一个简洁的方法,我会在内部包含一个稍微杂乱但不无理的列表。

到目前为止我的代码:

class Channel(list):
    sample_rate = 0
    def __init__(self, sample_rate, label=u"", data=[]):
        list.__init__(self,data)
        self.sample_rate = sample_rate
        self.label = label

    @property
    def nyquist_rate(self):
        return float(self.sample_rate) / 2.0

1 个答案:

答案 0 :(得分:11)

我想你应该覆盖__getslice__方法来返回你的类型的对象......

可能是以下情况?

class MyList(list):
    #your stuff here

    def __getslice__(self, i, j):
        return MyList(list.__getslice__(self, i, j))