Вам следует отказаться от идеи типов в Python. Большую часть времени вы не хотите проверять «тип» чего-либо. Явная проверка типов склонна к поломке, например:
>>> s1 = 'hello'
>>> s2 = u'hello'
>>> type(s1) == type(s2)
False
Что вы хотите сделать, это проверить, поддерживает ли объект какую-либо операцию, которую вы пытаетесь выполнить над ним.
Если вы хотите увидеть, является ли данный объект функцией, сделайте следующее:
>>> func = lambda x: x*2
>>> something_else = 'not callable'
>>> callable(func)
True
>>> callable(something_else)
False
Или просто попробуйте позвонить и поймайте исключение!