【发布时间】:2012-02-18 15:47:58
【问题描述】:
如何在 Python 中制作自调用匿名函数?
以 JavaScript 为例:
标准方式:
function fn (a) {
if (a == 1) {
alert(a);
}
else {
alert(0);
}
/...
}
fn(1);
自调用匿名调用:
!function(a) {
if (a == 1) {
alert(a);
}
else {
alert(0);
}
/...
}(1);
Python 中有类似的吗?
【问题讨论】:
-
@Marcin,只是想知道)
-
第一个案例不是匿名的。从任何意义上说,它们都不是“自我调用”。我编辑了标题。
-
@Opsa:“只是想知道”不会让一个糟糕的问题变得神奇般地好。请解释一下用例是什么。
-
@S.Lott 我想这可能会让 JavaScript 库更容易移植到 Python,因为许多 JavaScript 库都使用这种模式。
-
在 2017 年,我使用它的主要用例是预绑定/冻结数据结构(如
dict)的值,该数据结构旨在从另一个模块内部导入而无需分配/定义一个实际的函数或显式腌制:STATIC_CONST_D = (lambda S: {x: transform(x) for x in S})(set(1,2,3))from module import STATIC_CONST_D
标签: javascript python python-3.x