1. ホーム
  2. python

[解決済み] コーラブルとは何ですか?

2022-03-16 06:54:25

質問

さて、これではっきりした メタクラスが何であるか しかし、それに関連した概念があり、私はその本当の意味を知らずにいつも使っています。

誰でも一度は括弧を間違えて、quot;object is not callable"という例外を起こしたことがあるのではないでしょうか?さらに __init____new__ この血まみれの __call__ が使える。

マジックメソッドを使った例も含めて、解説をお願いします。

どのように解決するのですか?

callableは、呼び出すことができるものです。

組み込み callable (objects.cのPyCallable_Check) は、引数がどちらかであるかチェックします。

  • を持つクラスのインスタンス。 __call__ メソッドまたは
  • がヌルでない型である場合 tp_call (c 構造体) で、それ以外の場合は呼び出し可能であることを示すメンバ (関数、メソッドなど)

というメソッドは __call__ は、( ドキュメントによると )

インスタンスが関数として''呼ばれた''ときに呼び出される

class Foo:
  def __call__(self):
    print 'called'

foo_instance = Foo()
foo_instance() #this is calling the __call__ method