pythonで_call__メソッド解析
925 ワード
__call__
の方法はpythonのマジックの方法で、いくつかの特殊な機能を増やすことです.__call__
がどういう意味を表しているか見てみましょう.pythonのすべてのものはオブジェクトと呼ばれ、オブジェクトは呼び出すことができるオブジェクトと呼び出すことができないオブジェクトに分けられます.多くのPythonオブジェクトは、関数オペレータ()
によって呼び出されるオブジェクトです.1.例えば関数関数はオブジェクトであり、呼び出すことができる
def foo(x):
retuen x
a=foo(3) #a
print(a)
callable(foo())
callable(a)# true, foo , , a , foo a
2.しかし、クラスであればどうなるのでしょうか.Pythonはクラスに
__call__
という特別な方法を提供し、プログラマが呼び出し可能なオブジェクト(インスタンス)を作成できるようにした.デフォルトでは、__call__
メソッドは実装されていません.これは、ほとんどの場合、インスタンスが呼び出せないことを意味します.class test():
def method(self):
return 1
a = test()
callable(a)#false, a
この問題をどのように解決しますか?ここでは
__call__
関数を使いますclass test():
def __call__(self):
return 1
a = test()
callable(a)#true, a
以上説明
__call__