この記事の例は、Python での __call__ メソッドの使用法を説明しており、参考のために全員と共有されています。具体的なメソッド分析は次のとおりです。
Python の__call__ を使用すると、プログラマは呼び出し可能なオブジェクト (インスタンス) を作成できます。デフォルトでは、__call__() メソッドは実装されていません。つまり、ほとんどのインスタンスは呼び出し可能ではありません。ただし、このメソッドがクラス定義でオーバーライドされると、クラスのインスタンスが呼び出し可能になります。
test.py ファイルは次のとおりです:
#!/usr/bin/python # Filename:test.py class CallTest(): def __init__(self): print 'init' def __call__(self): print 'call' call_test = CallTest()
実行結果:
__call__ のオーバーライドはありません:
>>> from test import CallTest init >>> t = CallTest() init >>> callable(t) False >>> t() Traceback (most recent call last): File "<stdin>", line 1, in <module> AttributeError: CallTest instance has no __call__ method >>>
__call__ をオーバーライドします:
>>> from test import CallTest init >>> t = CallTest() init >>> callable(t) True >>> t() call >>>
この記事が皆さんの Python プログラミングに役立つことを願っています