在Python中调用匿名函数而不将它们分配给变量

Ops*_*psa 1 javascript python python-3.x

如何在Python中自我调用匿名函数

例如使用JavaScript:

标准方式:

function fn (a) {
   if (a == 1) {
      alert(a);
   }
   else {
     alert(0);
   }
  /...
}

fn(1);
Run Code Online (Sandbox Code Playgroud)

自我调用匿名电话:

!function(a) {
   if (a == 1) {
      alert(a);
   }
   else {
     alert(0);
   }
   /...
}(1);
Run Code Online (Sandbox Code Playgroud)

Python中有任何类似物吗?

Har*_*wEm 6

鉴于您对lambda答案的评论,我认为这是不可能的.该lambda操作是Python仅支持匿名函数的方式.如果需要支持语句,则需要使用a def,必须始终命名.

请记住,lambdas可以支持有限的if-then逻辑.以下两个是lambda实现上面给出的if-then逻辑的表达式:

(lambda a: alert(1 if a == 1 else 0))(1)
Run Code Online (Sandbox Code Playgroud)

字面意思是:

(lambda a: alert(a) if a == 1 else alert(0))(1)
Run Code Online (Sandbox Code Playgroud)


Pra*_*ota 5

如果您的函数很简单并且只有表达式(没有语句),那么您可以用来lambda创建匿名函数并内联调用它们。

>>> (lambda x, y: x*y)(3, 5)
15
Run Code Online (Sandbox Code Playgroud)