python - 如何测试变量是否包含 lambda?

标签 python class types lambda

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

self.assertEquals(lambda, type(myVar))

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

self.assertEquals(type(lambda m: m), type(myVar))

最佳答案

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

如果您需要知道某事物是否完全是一个 lambda,那么我会使用:

callable(mylambda) and mylambda.__name__ == "<lambda>"

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

关于python - 如何测试变量是否包含 lambda?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3655842/

相关文章:

python - 使用 Tweepy 从 Twitter 获取数据并存储在 csv 文件中

c++ - 在自定义 C++ 异常类中消失的字符串

haskell - 与 TypeApplications 一起使用时,AllowAmbigouslyTypes 有多危险?

java - 方法调用后原始局部变量会发生什么?

linq - Entity Framework 、每种类型的表和 Linq - 获取 "Type"

python:哪个文件更新了多少时间

python - 属性错误 : 'numpy.ndarray' object has no attribute 'clock'

c++ - 如何在同一个类的函数中获取类成员的函数指针?

python - InvalidToken 与 python 加密模块

C++ - 在类定义结束时创建的对象的范围