Desidero aggiungere un metodo a una singola istanza della classe 'elenco'. Esempio:Aggiungere un metodo a un'istanza di elenco in python
a = [1,2]
a.first = lambda self: return self[0]
So che questo non funziona, ma voglio qualcosa del genere funziona così. So che non è una buona pratica, e so che dovrei fare una classe completamente nuova, ma penso che sia possibile in Python e non ho capito come.
Sono a conoscenza di: Dynamically add member function to an instance of a class in Python e Dynamically binding Python methods to an instance correctly binds the method names, but not the method
ma nessuno di coloro che il lavoro con una lista nativo.
Grazie!
nota: non utilizzare 'return' per lambda. –
Si desidera eseguire 'a.first = lambda: a [0]' o 'a.first = types.MethodType (lambda self: self [0], a)'. Se aggiungi una funzione a un oggetto come questo, Python non lo collegherà automaticamente all'oggetto. –
Vedere http://stackoverflow.com/questions/6738987/extension-method-for-python-built-in-types – OlivierBlanvillain