【发布时间】:2019-10-20 09:43:30
【问题描述】:
考虑以下两个函数:
def f1():
return "potato"
f2 = lambda: "potato"
f2.__name__ = f2.__qualname__ = "f2"
缺乏对原始源代码的反省,有什么方法可以检测到f1 是一个def 而f2 是一个lambda?
>>> black_magic(f1)
"def"
>>> black_magic(f2)
"lambda"
【问题讨论】:
-
问题中的代码重新分配了
__name__。 -
请注意,链接的答案和@PeterDeGlopper 的评论都取决于您没有完成代码最后一行所做的事情,即设置
__name__属性你的 lambda -
为什么需要?
标签: python lambda python-datamodel