pythonのクラスのインスタンスも関数として使えますか?によってcall__!(

340 ワード

pythonの中の1つのclass Aの例a 1は、よくあるソースコードがh=a 1()と書かれているのを見ますが、この場合Aを呼び出すコンストラクション関数ではありませんが、a 1はインスタンスで、どうしてcallができるのでしょうか.その後、ソースコードを見てみると、class Aにはこのような文があります
def __call__( self, *args ):

....

このメソッドを追加すると、インスタンスは関数のように使用でき、Javascriptのようにclassとfunctionの境界がぼやけていますが、pythonでは明確な__を使用しています.call__ 限界を越えて