The __init__ method is used to initialise the newly created object, and it receives arguments that are used to initialize the newly created object.
def __init__(self, a, b, c):
x = Foo(1, 2, 3) # This is the __init__ method.
The call() method is used to implement the function call operator.
def __call__(self, a, b, c): # ...
x = Foo()
x(1, 2, 3) #This is the call() method.