Python has a set of built-in methods and __call__ is one of them. The __call__ method enables Python programmers to write classes where the instances behave like functions and can be called like a function. When the instance is called as a function; if this method is defined, x(arg1, arg2, ...) is a shorthand for x.__call__(arg1, arg2, ...).
object() is shorthand for object.__call__()
Example 1:
class Example:    def __init__(self):        print("Instance Created")          # Defining __call__ method    def __call__(self):        print("Instance is called via special method")  # Instance createde = Example()  # __call__ method will be callede() | 
Output :
Instance Created Instance is called via special method
Example 2:
class Product:    def __init__(self):        print("Instance Created")      # Defining __call__ method    def __call__(self, a, b):        print(a * b)  # Instance createdans = Product()  # __call__ method will be calledans(10, 20) | 
Output :
Instance Created 200
