既存のオブジェクト インスタンスへのメソッドの追加: Python ガイド
オブジェクト インスタンスへのメソッドの追加は一般的に推奨されません。特定の状況下では必要になる場合があります。 Python では、このプロセスでは関数とバインドされたメソッドの区別が重要です。
バインドされたメソッドは特定のインスタンスにリンクされ、呼び出し時に最初の引数として自動的に提供されます。逆に、クラス レベルの呼び出し可能オブジェクトはバインドされていないままになり、動的なクラス定義の変更が可能になります。
メソッドをクラス全体にアタッチするには、その定義を更新するだけです。
def fooFighters(self): print "fooFighters" A.fooFighters = fooFighters
このメソッドはすべてのユーザーで使用可能になります。
個々のインスタンスにメソッドをアタッチすることには課題が伴います。これをインスタンスに直接割り当てるとバインドされず、呼び出し時にエラーが発生します。
これを解決するには、types モジュールの MethodType 関数を利用します。
import types a.barFighters = types.MethodType(barFighters, a)
バインドされたメソッドはのみ影響します。他のクラス インスタンスはそのままにして、それらが接続されている特定のインスタンスにアクセスします。さらに詳しい情報が必要な場合は、記述子やメタクラス プログラミングなどのトピックを調べてください。
以上がPython で特定のオブジェクト インスタンスにメソッドを追加するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。