ホームページ >バックエンド開発 >Python チュートリアル >Python で特定のオブジェクト インスタンスにメソッドを追加するにはどうすればよいですか?

Python で特定のオブジェクト インスタンスにメソッドを追加するにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-12-20 09:44:10161ブラウズ

How Can I Add a Method to a Specific Object Instance in Python?

既存のオブジェクト インスタンスへのメソッドの追加: Python ガイド

オブジェクト インスタンスへのメソッドの追加は一般的に推奨されません。特定の状況下では必要になる場合があります。 Python では、このプロセスでは関数とバインドされたメソッドの区別が重要です。

バインドされたメソッドは特定のインスタンスにリンクされ、呼び出し時に最初の引数として自動的に提供されます。逆に、クラス レベルの呼び出し可能オブジェクトはバインドされていないままになり、動的なクラス定義の変更が可能になります。

メソッドをクラス全体にアタッチするには、その定義を更新するだけです。

def fooFighters(self):
    print "fooFighters"

A.fooFighters = fooFighters

このメソッドはすべてのユーザーで使用可能になります。

個々のインスタンスにメソッドをアタッチすることには課題が伴います。これをインスタンスに直接割り当てるとバインドされず、呼び出し時にエラーが発生します。

これを解決するには、types モジュールの MethodType 関数を利用します。

import types
a.barFighters = types.MethodType(barFighters, a)

バインドされたメソッドはのみ影響します。他のクラス インスタンスはそのままにして、それらが接続されている特定のインスタンスにアクセスします。さらに詳しい情報が必要な場合は、記述子やメタクラス プログラミングなどのトピックを調べてください。

以上がPython で特定のオブジェクト インスタンスにメソッドを追加するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。