Chcę dodać metodę do pojedynczego wystąpienia klasy "listy". Przykład:Dodaj metodę do instancji listy w pythonie
a = [1,2]
a.first = lambda self: return self[0]
Wiem, że to nie działa, ale chcę, aby coś takiego działało w ten sposób. Wiem, że to nie jest dobra praktyka i wiem, że powinienem zrobić zupełnie nową klasę, ale myślę, że jest to możliwe w Pythonie i nie zrozumiałem jak.
Jestem świadomy: Dynamically add member function to an instance of a class in Python i Dynamically binding Python methods to an instance correctly binds the method names, but not the method
ale żadna z tych prac z native listy.
Dzięki!
uwaga: nie używaj 'return' dla lambdas. –
Chcesz zrobić 'a.first = lambda: a [0]' lub 'a.first = types.MethodType (lambda self: self [0], a)'. Jeśli dodasz funkcję do obiektu takiego jak ten, Python nie będzie automatycznie wiązał tego obiektu z obiektem. –
Zobacz http://stackoverflow.com/questions/6738987/extension-method-for-python-built-in-types – OlivierBlanvillain