Callable в Python: определение и примеры использования

"Callable" - это понятие в программировании, означающее, что объект может быть вызван как функция. Он связан с парадигмой программирования, где функции считаются объектами первого класса и могут быть переданы как аргументы другим функциям, присвоены переменным или храниться в коллекциях.

Проверка, является ли объект "callable", осуществляется при помощи функции "callable()". Она принимает один аргумент - объект, и возвращает значение "True", если объект является вызываемым (callable), и "False" в противном случае.

Например, функция "print()" и метод "append()" у списка являются вызываемыми объектами. Вот примеры использования "callable()":


>>> x = 5
>>> callable(x)
False
>>> y = []
>>> callable(y)
False
>>> z = lambda x: x**2
>>> callable(z)
True
>>> s = "Hello, World!"
>>> callable(s)
False
>>> callable(print)
True
>>> callable(y.append)
True

Кроме функций и методов, являющихся объектами, lambda-функции и объекты, которые переопределяют метод "__call__()" также считаются вызываемыми.


>>> class MyClass():
...     def __call__(self, x):
...         return x**2
...
>>> obj = MyClass()
>>> callable(obj)
True
>>> callable(lambda x: x**3)
True

Вот примеры использования переопределенного метода "__call__()":


>>> class Adder:
...     def __init__(self, x):
...         self.x = x
...     def __call__(self, y):
...         return self.x + y
...
>>> add = Adder(5)
>>> add(10)
15

В итоге, "callable" - это объект, который может быть вызван как функция. Для проверки можно использовать функцию "callable()", с помощью которой можно определить, является ли объект вызываемым или нет.

Похожие вопросы на: "callable "

JS Sleep - Как реализовать задержку в JavaScript?
Учимся программировать на Python
Assembler CMP: операция сравнения в сборке
Understanding the Border Box CSS Model in Web Design
CSS Media Queries: Responsive Web Design for Different Devices
Использование метода POST в библиотеке Requests
Exception Exception in Module
jQuery Style Display Block
FTPS - надежный протокол для безопасной передачи файлов
HTML перенос текста