Python Classやインスタンスにメソッド追加。
メソッド追加
Pythonでクラス定義後やインスタンス生成後にメソッドをクラスやインスタンスに追加する方法
- クラスにメソッドを追加
- インスタンスにメソッドを追加
クラスにメソッドを追加
クラスに関数を追加
class poi: def __init__(self): pass def add(self, a): self.poi=a ins1 = poi() # クラスにメソッドを追加 poi.add=add ins1.add(3)
組込みクラスにはメソッドを追加できない場合がある。
インスタンスにメソッド追加
特定のインスタンスのみにメソッドを追加する。types.MethodTypeを使う。
from types import MethodType # 追加 class poi: def __init__(self): pass def add(self, a): self.poi=a ins1 = poi() # インスタンスにメソッド追加 ins1.add=MethodType(add,ins1) ins1.add(3)
参考
https://www.lifewithpython.com/2014/12/python-use-eigen-method.html
https://qiita.com/tamago324/items/80705655617ab7fa31a5
http://forum.chaos-project.com/index.php?topic=7648.0
http://stackoverflow.com/questions/972/adding-a-method-to-an-existing-object
https://www.lifewithpython.com/2014/08/python-add-instance-methods-to-existing-class.html