LambdaType 与函数类型

Ove*_*gon 11 python python-3.x

有什么不同?文档对此没有任何说明,并且它们help()是相同的。是否有一个对象isinstance会因一个而不是另一个失败?

Gui*_*sum 21

早在 1994 年,我不确定我们是否会始终为 lambda 和 def 使用相同的实现类型。这里的所有都是它的。删除它会很痛苦,所以我们只留下它(它只有一行)。如果您想在文档中添加注释,请随时提交 PR。

  • 我的[问题](https://github.com/python/cpython/commit/adc940eabfdb69c6adb3764f35fa00d057e3c3d5#diff-0f021aec4e35b86a3160d44069dec997R21)达到了 - 是他! (3认同)

Mat*_*haq 5

cpython/Lib/types.py

def _f(): pass
FunctionType = type(_f)
LambdaType = type(lambda: None)         # Same as FunctionType
Run Code Online (Sandbox Code Playgroud)

  • 请注意,自 1994 年以来,“LambdaType”的定义从未改变过。 Guido 可以告诉你为什么添加它。 (3认同)
  • @OverLordGoldDragon `cpython/Lib` 基本上包含了您可以“导入”的所有标准库模块。如果你指的是具体的提交,你可以检查 [`gitblame`](https://github.com/python/cpython/blame/a041e116db5f1e78222cbf2c22aae96457372680/Lib/types.py#L11-L13) (也直接在 GitHub 上! )。 (2认同)
  • @chepner 我做到了! (2认同)