首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何测试一个变量是否包含lambda?

如何测试一个变量是否包含lambda?
EN

Stack Overflow用户
提问于 2010-09-07 12:46:41
回答 4查看 15.4K关注 0票数 26

有没有一种方法可以测试一个变量是否包含lambda?上下文是我想在单元测试中检查一个类型:

代码语言:javascript
复制
self.assertEquals(lambda, type(myVar))

type似乎是“函数”,但我没有看到任何明显的内置类型来匹配它。显然,我可以这样写,但感觉很笨拙:

代码语言:javascript
复制
self.assertEquals(type(lambda m: m), type(myVar))
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-09-07 12:49:55

代码语言:javascript
复制
def isalambda(v):
  LAMBDA = lambda:0
  return isinstance(v, type(LAMBDA)) and v.__name__ == LAMBDA.__name__
票数 20
EN

Stack Overflow用户

发布于 2014-07-05 00:45:18

这已经过期几年了,但是callable(mylambda)将为任何可调用的函数或方法返回True,包括lambda。hasattr(mylambda, '__call__')做了同样的事情,但没有那么优雅。

如果你需要知道某个东西是否绝对是一个lambda,那么我会使用:

代码语言:javascript
复制
callable(mylambda) and mylambda.__name__ == "<lambda>"

(此答案与Python2.7.5及更高版本相关。)

票数 36
EN

Stack Overflow用户

发布于 2015-11-07 05:28:05

不需要做任何修改,内置的inspect模块会为你处理它。

代码语言:javascript
复制
import inspect
print inspect.isfunction(lambda x:x)
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3655842

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档