Python callable() Method
The callable()
method returns True if the object passed is callable, False if not.
In Python, classes, methods, and instances are callable because calling a class returns a new instance. Instances are callable if their class includes __call__()
method.
Syntax:
callable(object)
Parameters:
object: Required. The object to be checked.
Return Value:
Returns True if an object is callable else, returns False.
The following example checks built-in objects and methods to see if they are callable or not.
print("Is str callable? ", callable(str)) # str class
print("Is len callable? ", callable(len)) # len function
print("Is list callable? ", callable(list)) # list class
num=10
print("Is variable callable? ", callable(num))
Is str callable? True
Is len callable? True
Is int callable? True
Is variable callable? False
The callable()
method works with user-defined classes and functions, as shown below.
class student:
def greet(self):
print("Hello there")
std = student()
print("Is student class callable? ",callable(student))
print("Is student.greet() callable? ",callable(std.greet))
print("Is student instance callable? ",callable(std))
Is student class callable? True
Is student.greet() callable? True
Is student instance callable? False
In the above example, the std
instance is not callable. Calling the object will raise an error. To make the instance callable, you must override the __call__()
method in the student
class, as shown below.
class student:
def greet(self):
print("Hello there")
def __call__(self):
print("Hello, I am a student.")
std = student()
print("Is student instance callable? ", callable(std))
print(std())
Is student instance callable? True
Hello, I am a student.