Is there a way to test whether a variable holds a lambda
?
The context is I'd like to check a type in a unit test:
self.assertEquals(lambda, type(myVar))
The type
seems to be "function" but I didn't see any obvious builtin type to match it.
Obviously, I could write this, but it feels clumsy:
self.assertEquals(type(lambda m: m), type(myVar))
There is no need to do any hacks, the built in inspect module handles it for you.
Use the
types
module:According to the docs, It is safe to use
from types import *
.This is years past-due, but
callable(mylambda)
will returnTrue
for any callable function or method, lambdas included.hasattr(mylambda, '__call__')
does the same thing but is much less elegant.If you need to know if something is absolutely exclusively a lambda, then
mylambda.__name__ == "<lambda>"
is what I'd use.(This answer is relevant to Python2.7.5.)