有没有一种方法可以测试一个变量是否包含lambda
?上下文是我想在单元测试中检查一个类型:
self.assertEquals(lambda, type(myVar))
type
似乎是“函数”,但我没有看到任何明显的内置类型来匹配它。显然,我可以这样写,但感觉很笨拙:
self.assertEquals(type(lambda m: m), type(myVar))
发布于 2010-09-07 12:49:55
def isalambda(v):
LAMBDA = lambda:0
return isinstance(v, type(LAMBDA)) and v.__name__ == LAMBDA.__name__
发布于 2014-07-05 00:45:18
这已经过期几年了,但是callable(mylambda)
将为任何可调用的函数或方法返回True
,包括lambda。hasattr(mylambda, '__call__')
做了同样的事情,但没有那么优雅。
如果你需要知道某个东西是否绝对是一个lambda,那么我会使用:
callable(mylambda) and mylambda.__name__ == "<lambda>"
(此答案与Python2.7.5及更高版本相关。)
发布于 2015-11-07 05:28:05
不需要做任何修改,内置的inspect模块会为你处理它。
import inspect
print inspect.isfunction(lambda x:x)
https://stackoverflow.com/questions/3655842
复制相似问题