DEV Community

Srinivas for ItsMyCode

Posted on • Originally published at itsmycode.com on

Python callable()

ItsMyCode |

The callable() function in Python returns True if the object passed appears to be callable. Otherwise, it returns False.

callable() Syntax

The syntax of the callable() method is

**callable(object)**
Enter fullscreen mode Exit fullscreen mode

callable() Parameters

The callable() method can take only one argument, i.e., an object.

callable() Return Value

The callable() function returns

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

Note: There may be few cases where callable() returns True , but the call to the object may fail. But in case if callable() returns False , the calling object will never succeed.

Example 1: How does callable() works?

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

# returns false as the object of integer is not callable
number = 10
print(callable(number))

def getData():
  print("Hello World")

# returns true as the variable is callable
obj = getData
print(callable(obj))
Enter fullscreen mode Exit fullscreen mode

Output

False
True
Enter fullscreen mode Exit fullscreen mode

Example 2: When an Object is callable

The built-in callable() method checks if the argument passed is either of the below two cases:

  • An instance of a class having a ` __call_ `_ method.
  • It is of a type that indicates callability, such as in functions, methods, etc. or has a non-null tp_call(c struct) member.
# Python program to demonstrate callable()
class Test:
  def __call__ (self):
    print('Hello World !!!')

# Suggests that Test class is callable and returns True
print(callable(Test))

# This proves that class is callable
TestObject = Test()
TestObject()
Enter fullscreen mode Exit fullscreen mode

Output

True
Hello World !!!
Enter fullscreen mode Exit fullscreen mode

Example 3: When an Object is NOT callable

The callable() method returns True , suggesting that the Test class is callable, but the instance of Test ** is not callable, and it returns a **TypeError: ‘Test’ object is not callable

# Python program to demonstrate NOT callable()
class Test:
  def printdata(self):
    print('Hello World !!!')

# Suggests that Test class is callable and returns True
print(callable(Test))

# The object will be created but returns error while calling
TestObject = Test()
TestObject()
Enter fullscreen mode Exit fullscreen mode

Output

True

Traceback (most recent call last):
  File "c:\Projects\Tryouts\main.py", line 11, in <module>
    TestObject()
TypeError: 'Test' object is not callable
Enter fullscreen mode Exit fullscreen mode

The post Python callable() appeared first on ItsMyCode.

Discussion (0)