Yandex

Python callable() Function – Check If Object Is Callable



Python callable() Function

The callable() function in Python checks whether an object can be called like a function. It returns True if the object appears callable (such as a function, method, class, or object with a __call__() method), otherwise it returns False.

Syntax

callable(object)

Parameter:

  • object – Any Python object (function, class, variable, etc.)

Returns:

  • True if the object is callable
  • False otherwise

Example 1: Function is Callable

def greet():
    print("Hello!")

print(callable(greet))
True

Why? Because greet is a function, and functions are callable.

Example 2: Integer is Not Callable

x = 42
print(callable(x))
False

Why? Because integers are not callable.

Example 3: Class is Callable

class Person:
    pass

print(callable(Person))
True

Why? Because classes can be called to create new instances.

Example 4: Object with __call__ is Callable

class MyClass:
    def __call__(self):
        print("I can be called!")

obj = MyClass()
print(callable(obj))
True

Why? Because the object defines a __call__() method.

Use Cases

  • To check before calling a function dynamically (like in decorators or plugins)
  • To verify if an object supports being used like a function
  • Used in frameworks to ensure interfaces are implemented correctly

Common Mistakes

  • Confusing "callable" with “instance of function” — classes and objects with __call__() are callable too!
  • Trying to call non-callable objects like strings or numbers leads to TypeError

Interview Tip

In advanced Python coding rounds, callable objects and the __call__() method are often tested to assess your understanding of OOP and metaprogramming.

Summary

  • callable(obj) returns True if the object can be called like a function.
  • Functions, classes, and objects with __call__() are callable.
  • Numbers, strings, lists, etc., are not callable.

Practice Problem

Create a class called Counter that behaves like a function and prints "Counting..." when called. Use callable() to check the object.

class Counter:
    def __call__(self):
        print("Counting...")

c = Counter()
print(callable(c))
c()
True
Counting...


Welcome to ProgramGuru

Sign up to start your journey with us

Support ProgramGuru.org

You can support this website with a contribution of your choice.

When making a contribution, mention your name, and programguru.org in the message. Your name shall be displayed in the sponsors list.

PayPal

UPI

PhonePe QR

MALLIKARJUNA M