在Python中为列表实例添加一个方法

10

我想给`list`类的一个实例添加一个方法。例如:

a = [1,2]
a.first = lambda self: return self[0]
我知道这个不起作用,但我想要一个像这样能够工作的东西。我知道这不是一个好的做法,我知道我应该做一个全新的类,但我认为在Python中可能有这个可能性,只是还没有想出来如何实现。
我知道以下两篇文章: 在Python中动态添加成员函数到实例 在实例中动态绑定Python方法会正确地绑定方法名,但不是方法本身 但是这些都不能用于内置列表。
谢谢!

1
注意:在Lambda中不要使用return - Karoly Horvath
1
你想要执行a.first = lambda: a[0]a.first = types.MethodType(lambda self: self[0], a)。如果你像这样将一个函数添加到对象中,Python 将不会自动绑定它到该对象。 - Peter Graham
请参见https://dev59.com/YWw15IYBdhLWcg3wO5WX,该链接涉及Python内置类型的扩展方法。 - OlivierBlanvillain
1个回答

13

原生列表无法使用,因为您无法向在C中定义的类型添加方法。 您需要从list派生并将您的方法添加到该类中。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接