1. ホーム
  2. python

[解決済み] init__と__call__の違いは何ですか?

2022-03-14 13:42:13

質問

との違いを知りたい。 __init____call__ メソッドを使用します。

例えば

class test:

  def __init__(self):
    self.a = 10

  def __call__(self): 
    b = 20

解決方法は?

1つ目は、新しく作成されたオブジェクトを初期化するために使用され、そのために使用される引数を受け取ります。

class Foo:
    def __init__(self, a, b, c):
        # ...

x = Foo(1, 2, 3) # __init__

2つ目は関数呼び出し演算子を実装しています。

class Foo:
    def __call__(self, a, b, c):
        # ...

x = Foo()
x(1, 2, 3) # __call__