ホームページ > バックエンド開発 > Python チュートリアル > Python での __call__ メソッドの例の分析

Python での __call__ メソッドの例の分析

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
リリース: 2016-06-16 08:41:13
オリジナル
1305 人が閲覧しました

この記事の例は、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 プログラミングに役立つことを願っています

関連ラベル:
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート