__call__ in Python Last Updated : 12 Jul, 2025 Comments Improve Suggest changes 64 Likes Like Report 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 this method is defined, calling an object (obj(arg1, arg2)) automatically triggers obj.__call__(arg1, arg2). This makes objects behave like functions, enabling more flexible and reusable code.Syntax:class Example: def __init__(self): # code # Defining __call__ method def __call__(self): # codedef __call__(self): defines a method that can be called as a function directly from the instance of the class Example.Examples of __call__ Let's understand the implementation of __call__ in Python with the help of some code examples.Example 1: Basic UsageIn this example, we will define a class and create a __call__ method in it and call it using the object of the that: Python class Gfg: def __init__(self): print("Instance Created") # Defining __call__ method def __call__(self): print("Instance is called via special method") # Instance created e = Gfg() # __call__ method will be called e() OutputInstance Created Instance is called via special method Explanation:__init__ method runs when the object is created.__call__ method is triggered when we use e() like a function.This makes Gfg instances callable. Example 2: Passing ArgumentsNow let's see how to pass arguments to such methods: Python class Prod: def __init__(self): print("Instance Created") # Defining __call__ method def __call__(self, a, b): print(a * b) # Instance created a = Prod() # __call__ method will be called a(10, 20) OutputInstance Created 200 Explanation:__call__ accepts arguments (a, b), allowing instances to process input like a function.This is useful for creating flexible objects that act as parameterized functions.Example 3: Creating a Counter FunctionLets's create a counter object using __call__: Python class C: def __init__(self): self.count = 0 def __call__(self): self.count += 1 return self.count count = C() print(count()) print(count()) print(count()) Output1 2 3 Exlpanation:Counter object keeps track of how many times it has been called.This is useful for rate limiting, caching, or tracking API calls. Create Quiz Comment R rakshitarora Follow 64 Improve R rakshitarora Follow 64 Improve Article Tags : Python Python-Functions Explore Python FundamentalsPython Introduction 2 min read Input and Output in Python 4 min read Python Variables 4 min read Python Operators 4 min read Python Keywords 2 min read Python Data Types 8 min read Conditional Statements in Python 3 min read Loops in Python - For, While and Nested Loops 5 min read Python Functions 5 min read Recursion in Python 4 min read Python Lambda Functions 5 min read Python Data StructuresPython String 5 min read Python Lists 4 min read Python Tuples 4 min read Python Dictionary 3 min read Python Sets 6 min read Python Arrays 7 min read List Comprehension in Python 4 min read Advanced PythonPython OOP Concepts 11 min read Python Exception Handling 5 min read File Handling in Python 4 min read Python Database Tutorial 4 min read Python MongoDB Tutorial 3 min read Python MySQL 9 min read Python Packages 10 min read Python Modules 3 min read Python DSA Libraries 15 min read List of Python GUI Library and Packages 3 min read Data Science with PythonNumPy Tutorial - Python Library 3 min read Pandas Tutorial 4 min read Matplotlib Tutorial 5 min read Python Seaborn Tutorial 3 min read StatsModel Library - Tutorial 3 min read Learning Model Building in Scikit-learn 6 min read TensorFlow Tutorial 2 min read PyTorch Tutorial 6 min read Web Development with PythonFlask Tutorial 8 min read Django Tutorial | Learn Django Framework 7 min read Django ORM - Inserting, Updating & Deleting Data 4 min read Templating With Jinja2 in Flask 6 min read Django Templates 5 min read Build a REST API using Flask - Python 3 min read Building a Simple API with Django REST Framework 3 min read Python PracticePython Quiz 1 min read Python Coding Practice 1 min read Python Interview Questions and Answers 15+ min read Like