我正在尝试基于内置列表类型构建一个类:
class MyList(list):
def __getslice__(self, i, j):
return MyList(
super(MyList, self).__getslice__(i, j)
)
def __add__(self,other):
return MyList(
super(MyList, self).__add__(other)
)
def __mul__(self,other):
return MyList(
super(MyList, self).__mul__(other)
)
def __getitem__(self, item):
result = super(MyList, self).__getitem__(item)
try:
return MyList(result)
except TypeError:
return result
我想知道是否有办法让 MyList 类与过滤器或映射等内置函数一起工作。通过“使用”我的意思是让过滤器和映射返回 MyList 类对象而不是列表类型对象。
>>> a = MyList([1, 2, 3, 4])
>>> type(a)
<class '__main__.MyList'>
>>> b = filter(lambda this: this > 2, a)
>>> type(b)
<type 'list'>
我希望 type(b) 返回与 type(a) 返回相同的值。
有什么建议么?