重新定义python列表

重新定义python列表,python,Python,是否可以从Python中重新定义Python列表的行为,我的意思是,无需在Python源代码中编写任何内容?您始终可以创建自己的继承自列表的子类 例如(尽管您可能永远不想使用此选项): 您总是可以创建自己的子类继承自列表 例如(尽管您可能永远不想使用此选项): 您想要实现什么?您想要实现什么?在2.2之前的Python版本中,应该使用UserList。在2.2之前的Python版本中,应该使用UserList。对于落后的同胞来说,它仍然存在。 class new_list(list):

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

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

例如(尽管您可能永远不想使用此选项):


您总是可以创建自己的子类继承自列表

例如(尽管您可能永远不想使用此选项):


您想要实现什么?您想要实现什么?在2.2之前的Python版本中,应该使用
UserList
。在2.2之前的Python版本中,应该使用
UserList
。对于落后的同胞来说,它仍然存在。
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