向已建立的类添加新方法

时间:2014-12-15 23:17:23

标签: python list python-2.7

我想扩展列表功能,所以我们可以使用如下。如何将此方法添加到列表对象?

  # list([1,2,3,4,5]).even() should return [2,4]

1 个答案:

答案 0 :(得分:1)

你不能修补list,因为它是在C扩展模块中定义的,因此在这个意义上是不可改变的。您可以继承list:

class mylist(list):
    def even(self):
        return [x for x in self if x % 2 == 0]

>>> mylist([1,2,3,4,5]).even()
[2, 4]