callable() Function in Python
In this tutorial, we will focus on callable() function in Python. We will also check how callable() function works in Python.
A function performs a specific task.
Certainly, anything which can be called, if given to the callable() function will return True.
Certainly, the callable function has two features,
- Returns True if the argument passed is callable.
- Moreover, if the argument is not callable, it returns False.
Let’s implement the above function:
def fun (): print ("Hello CodeSpeedy") result = callable(fun) # fun object passed to callable function print (result)
Output : True
Certainly, from the code, it is clear that the fun object passed to the callable() function can be called.
Moreover, it’s also good to see what happens if a list object is passed to that function.
l = [ 1, 2, 3] result = callable(l) # list object passed to callable function print (result)
Output : False
From the above two examples, it is very well proven that only function objects are callable.
It seems easy, wait but there is a surprise, nothing but a magic method __call__().
The key point is to note that it is the same as __init__() which is a class constructor.
Certainly, the example gives more idea about it.
class Dog: def __init__(self,price): self.price = price class Cat: def __call__(self,price): self.price = price d = Dog (200) # with __init__ method , __init__ gets invoked c = Cat () # with __call__ method c(300) # __call__ gets invoked print ("Price of dog is",d.price) print ("Price of cat is",c.price)
Output : Price of dog is 200 Price of cat is 300
Concluding, the callable() function is not used frequently but good to know that it exists in the deep sea of Python.