Python 3.2+Встроенные функциипонятие
callable
интроспекция
Возвращает True, если объект можно вызвать: функция, класс, лямбда или объект с методом __call__.
Синтаксис
callable(object)
Проверка идёт по типу объекта, а не по самому объекту: приписать экземпляру атрибут obj.__call__ = f недостаточно — Python ищет __call__ у класса, и callable(obj) останется False, как и сам вызов. True тоже ничего не обещает: объект вызываемый, но с другим числом аргументов вызов упадёт TypeError. В обычном коде проверка почти не нужна — прямее просто вызвать и поймать TypeError либо разделять ветки по isinstance; callable полезен на границе, где приходит то ли значение, то ли фабрика.
Примеры
print(callable(print)) # → True
print(callable(len)) # → True
print(callable(42)) # → False
print(callable(lambda: 0)) # → True
class A:
def __call__(self): pass
print(callable(A())) # → True
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности