如何覆盖列表的插入功能以返回列表

时间:2014-06-25 15:13:05

标签: python

在python中,list有一个insert方法,它返回None。

li = ['a','b']
print li.insert(1,'a')
None

我需要它来返回列表,

print li.insert(1,'a')
['a','a','b']

我试图通过创建一个新类来实现它,但我被困了

class Nlist(list):
    def insert(self,*args,**kwargs):
        super(Nlist,self).insert(*args,**kwargs)
        return #what?

2 个答案:

答案 0 :(得分:2)

您可以像这样继承列表:

class Nlist(list):
    def insert(self, *args, **kwargs):
        super(Nlist, self).insert(*args, **kwargs)
        return self

答案 1 :(得分:0)

而不是

    li = ['a','b']
    print li.insert(1,'a')
    None

这样做

    li = ['a','b']
    li.insert(1,'a')
    print li
    ['a','a','b']