Python Glossary English

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Сообщить о неточности