'list'クラスの1つのインスタンスにメソッドを追加したいと思います。例:Pythonのリストインスタンスにメソッドを追加する
a = [1,2]
a.first = lambda self: return self[0]
私は、これは動作しません知っているが、私はそのようなことはそのように動作したいです。私はそれが良い習慣ではないことを知っています。私は全く新しいクラスを行うべきであることを知っていますが、これはPythonで可能であると考えています。
私は認識しています: Dynamically add member function to an instance of a class in Python と Dynamically binding Python methods to an instance correctly binds the method names, but not the method
が、ネイティブのリストと、それらの作品のどれも。
ありがとうございます!
注:lambdasには 'return'を使用しないでください。 –
'a.first = lambda:a [0]'や 'a.first = types.MethodType(lambda self:self [0]、a)'を行いたいとします。このようにオブジェクトに関数を追加すると、Pythonは自動的にそれをオブジェクトにバインドしません。 –
http://stackoverflow.com/questions/6738987/extension-method-for-python-built-in-typesを参照してください – OlivierBlanvillain