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