Python Built-in Function callable():
The callable() is a built-in function in Python that determines if the object being passed is callable or not. However, this method returns True only if the object is callable, False otherwise. Moreover, if we try to call an object that is not callable, it results in a TypeError Exception.
The signature for the callable() method is as shown below. Here, “obj” can be any object of type function, string, list, etc. Also, the variable
r will store a boolean value returned by the callable.
Method parameters and return type
- Here, The callable() method takes an object as a parameter.
- However, it returns the boolean value True or False.
Python Built-in Function callable Examples:
Example 1: In this example, let us check if the user-defined function func is callable or not. Here, we will check for variable num to be callable or not. As we can see, that this method returns false because num is not callable.
#Defining a Function def func(): print("Python") # Using callable and printing r=callable(func) print("Is function callable? ",r) num=10 r=callable(num) print("Is num callable? ",r)
Is function callable? True Is num callable? False
Example 2: The following example checks built-in objects to see if they are callable or not. Here, we are calling with the object of list, tuple, string and dictionary. Just because, all this objects are callable, this will return True.
#Using callable method and printing print("Is string class callable?", callable(str)) print("Is list class callable?", callable(list)) print("Is tuple class callable?",callable(tuple)) print("Is dict class callable?",callable(dict))
Is string class callable? True Is list class callable? True Is tuple class callable? True Is dict class callable? True
Example 3: In this example, let us create a class employee and method welcome inside a class. Here, we will check whether the class instance is callable or not. As we can see, the class instance is not callable it raises a
TypeError exception. To make class callable, we have to override the
__call__ method of an employee class.
#Defining class class employee: def welcome(self): print("Python") #Creating instance of a class e = employee() #Checking for a callable or not print("Is employee instance callable? ", callable(e)) # Calling with the instance print(e())
Is employee instance callable? False Traceback (most recent call last): File "main.py", line 9, in print(e()) TypeError: 'employee' object is not callable
The callable() method returns a true value if the object is callable. However, if the object is not callable this method returns false.
Happy Learning 🙂