Tengo una función en Python que itera sobre los atributos devueltos desde dir (obj), y quiero verificar si alguno de los objetos que contiene es una función, método, función incorporada, etc. Normalmente, usted podría usar callable() para esto, pero no quiero incluir clases. Lo mejor que he encontrado hasta ahora es:¿Hay alguna forma común de verificar en Python si un objeto es cualquier tipo de función?
isinstance(obj, (types.BuiltinFunctionType, types.FunctionType, types.MethodType))
¿Hay alguna manera más segura de realizar este control en el futuro?
Edité: Me equivoqué al decir cuando dije: "Normalmente podría usar callable() para esto, pero no quiero descalificar clases". De hecho, do quiero descalificar clases. Quiero hacer coincidir las funciones solo, no las clases.
isroutine() devuelve False para los parciales. hasattr (obj, '__call__') devuelve True para parciales. – Jim