Python Glossary English

все Python 3inspectфункция

inspect.isroutine()

проверка вида объекта

Проверяет, что объект — функция или метод любого вида: Python, встроенные, связанные и дескрипторы методов.

Синтаксис

inspect.isroutine(object) -> bool

Это объединение isfunction, ismethod, isbuiltin, ismethoddescriptor и ismethodwrapper — но не callable(): класс и объект с __call__ вызываемы, а рутинами не считаются. Поведение для functools.partial сменилось: до 3.14 isroutine(partial(...)) давал False, с 3.14 — True. Если код должен работать на нескольких версиях, partial проверяйте явно через isinstance.

Примеры

import inspect
class A:
    def m(self): pass
    def __call__(self): pass
print(inspect.isroutine(len), inspect.isroutine(A().m))  # → True True
print(inspect.isroutine(list.append), inspect.isroutine(A))  # → True False
print(inspect.isroutine(A()), callable(A()))  # → False True
# Python 3.14+
import functools, inspect
print(inspect.isroutine(functools.partial(print)))  # → True — до 3.14 было False

См. также

Открыть в полном глоссарииdocs.python.orgСообщить о неточности