向已建立的类添加新方法

2024-04-25 16:49:52 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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

Tags: 对象方法功能列表returnlistevenshould
1条回答
网友
1楼 · 发布于 2024-04-25 16:49:52

您不能使用monkey patchlist,因为它是在C扩展模块中定义的,因此在这个意义上是不可变的。您可以为列表创建子类:

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]

相关问题 更多 >