「callable」とは何ですか? 質問する

「callable」とは何ですか? 質問する

明らかになったメタクラスとは何か、私はそれが実際に何を意味するのか知らずにいつも使っている関連する概念があります。

おそらく誰もが一度は括弧の使い方を間違えて、「オブジェクトは呼び出し可能ではありません」という例外を出したことがあるでしょう。さらに、 と を使用する__init__と、これが何に使える__new__のか疑問に思うでしょう。__call__

マジックメソッドの例を含めて、いくつか説明していただけますか?

ベストアンサー1

呼び出し可能オブジェクトとは、呼び出すことができるオブジェクトのことです。

組み込み呼び出し可能オブジェクト(objects.c の PyCallable_Check)引数が次のいずれかであるかどうかを確認します。

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

メソッド名__call__は(文書によると

インスタンスが関数として「呼び出される」ときに呼び出されます

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

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

おすすめ記事