What is the difference between __init__ and __call__?
callable-object, class, object, oop, python
Solution
The first is used to initialise newly created object, and receives arguments used to do that:
class Foo:
def __init__(self, a, b, c):
# ...
x = Foo(1, 2, 3) # __init__
The second implements function call operator.
class Foo:
def __call__(self, a, b, c):
# ...
x = Foo()
x(1, 2, 3) # __call__
Problem
I want to know the difference between `__init__` and `__call__` methods. For example: ``` class test: def __init__(self): self.a = 10 def __call__(self): b = 20 ```