Python callable()

The callable() method returns True if the object passed appears callable. If not, it returns False.

The syntax of callable() is:

callable(object)

callable() Parameters

The callable() method takes a single argument object.


Return value from callable()

The callable() method returns:

  • True - if the object appears callable
  • False - if the object is not callable.

It important to remember that, even if the callable() is True, call to the object may still fail.

However, if the callable() returns False, call to the object will certainly fail.


Example 1: How callable() works?

x = 5
print(callable(x))

def testFunction():
  print("Test")

y = testFunction
print(callable(y))

When you run the program, the output will be:

False
True

Here, the object x is not callable. And, the object y appears to be callable (but may not be callable).


Example 2: Callable Object 

class Foo:
  def __call__(self):
    print('Print Something')

print(callable(Foo))

When you run the program, the output will be:

True

The instance of Foo class appears to be callable (and is callable in this case).

class Foo:
  def __call__(self):
    print('Print Something')

InstanceOfFoo = Foo()

# Prints 'Print Something'
InstanceOfFoo()

Example 3: Object Appears to be Callable but isn't callable.

class Foo:
  def printLine(self):
    print('Print Something')

print(callable(Foo))

When you run the program, the output will be:

True

The instance of Foo class appears to be callable but it's not callable. The following code will raise an error.

class Foo:
  def printLine(self):
    print('Print Something')

print(callable(Foo))

InstanceOfFoo = Foo()
# Raises an Error
# 'Foo' object is not callable
InstanceOfFoo()