ホームページ >バックエンド開発 >Python チュートリアル >Python での __call__ メソッドの使用の概要 (例付き)

Python での __call__ メソッドの使用の概要 (例付き)

不言
不言オリジナル
2018-09-17 16:38:024490ブラウズ

この記事では、Python での __call__ メソッドの使用方法を紹介します (例とともに)。これには一定の参考価値があります。必要な友人は参照できます。お役に立てれば幸いです。

Python のクラスが __call__ メソッドを定義している場合、このクラスのインスタンスは関数として呼び出すことができます。つまり、() 演算子を実装し、オブジェクト プロトコルを呼び出すことができます

以下は簡単な例です:

class TmpTest:
    def __init__(self, x, y):
        self.x = x
        self.y = y

    def __call__(self, x, y):
        self.x, self.y = x, y


a = TmpTest(1, 2)
a(4, 5)
print(a.x, a.y)

この記事では、装飾部分については説明しません。デコレータを使用して __call__ メソッドの使用方法を説明します。クラスをデコレータとして使用する必要がある場合は、 、クラス デコレータを実装するために __call__ を使用する例である、この Class 実装 __call__ メソッドを提供する必要があります:

class TmpTest:
    def __init__(self, func):
        self.func=func
    def __call__(self, *args,**kwargs):
        result=self.func(*args,**kwargs)
        return result
@TmpTest
def add_num(x,y):
    return x+y

print(add_num(1,0))

以上がPython での __call__ メソッドの使用の概要 (例付き)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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