Summary: in this tutorial, you’ll learn about Python callable objects and how to use the callable
function to check if an object is callable.
Introduction to Python callables
When you can call an object using the ()
operator, that object is callable:
object()
Code language: Python (python)
For example, functions and methods are callable. In Python, many other objects are also callable.
A callable always returns a value.
To check if an object is callable, you can use the built-in function callable
:
callable(object)
Code language: Python (python)
The callable
function accepts an object. It returns True
if the object is callable. Otherwise, it returns False
.
Python callable function examples
The following illustrates the various types of callable objects in Python.
1) built-in functions
All built-in functions are callable. For example, print
, len
, even callable
.
print(callable(print))
print(callable(len))
print(callable(callable))
Code language: Python (python)
Output:
True
True
True
Code language: PHP (php)
2) User-defined functions
All user-defined functions created using def
or lambda
expressions are callable. For example:
def add(a, b):
return a + b
print(callable(add)) # True
print(callable(lambda x: x*x)) # True
Code language: Python (python)
Output:
True
True
Code language: PHP (php)
3) built-in methods
The built-in method such as a_str.upper
, a_list.append
are callable. For example:
str = 'Python Callable'
print(callable(str.upper)) # True
Code language: Python (python)
Output:
True
Code language: PHP (php)
4) Classes
All classes are callable. When you call a class, you get a new instance of the class. For example:
class Counter:
def __init__(self, start=1):
self.count = start
def increase(self):
self.count += 1
def value(self):
return self.count
Code language: Python (python)
5) Methods
Methods are functions bound to an object, therefore, they’re also callable. For example:
print(callable(Counter.increase)) # True
Code language: Python (python)
Output:
True
Code language: PHP (php)
6) Instances of a class
If a class implements the __call__
method, all instances of the class are callable:
class Counter:
def __init__(self, start=1):
self.count = start
def increase(self):
self.count += 1
def value(self):
return self.count
def __call__(self):
self.increase()
counter = Counter()
counter()
print(callable(counter)) # True
Code language: Python (python)
Output:
True
Code language: PHP (php)
Summary
- An object is callable when it can be called using the
()
operator. - Use the Python
callable
built-in function to check if an object is callable or not.