有没有办法对 lambda 和 def 函数进行类型比较?我希望 False
通过一些过程输出,但我不知道这种粒度级别是否是 python 函数的 native 。我的用例是确保注册到事件的函数不是 lambda,以便以后可以通过其他方法取消注册。
def foo():
pass
(lambda: None).__class__ == foo.__class__ # >> True
编辑:我的用例实际上更具教育性而非功能性,所以我真的只关心区分 lambda 函数和 def 函数的方法。
最佳答案
您可以检查函数的名称。 lambda 将被命名为 <lambda>
.
def islambda(f):
return f.__name__ == '<lambda>'
def foo():
pass
print(islambda(lambda: None)) # True
print(islambda(foo)) # false
关于python - 如何区分 lambda 和 def 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68491866/