重新定义python列表

时间:2010-10-21 13:43:18

标签: python

是否可以从Python重新定义Python List的行为,我的意思是,无需在Python源代码中编写任何内容?

1 个答案:

答案 0 :(得分:3)

您始终可以创建自己继承自列表的子类。

一个例子(虽然你可能永远不想使用它):

class new_list(list):
    '''A list that will return -1 for non-existent items.'''
    def __getitem__(self, i):
        if i >= len(self):
            return -1
        else:
            return super(new_list, self).__getitem__(i)

l = new_list([1,2,3])
l[2] #returns 3 just like a normal list
l[3] #returns -1 instead of raising IndexError