在python的if语句中赋值变量的c风格

prg*_*enz 4 python python-3.x

在c/c ++中,我可以在if语句中"为变量赋值",如下所示:

   int a;

   if ( (a = foo()) > 0)
   {
      printf("%d\n", a);
   }
Run Code Online (Sandbox Code Playgroud)

是否有任何等效的python声明?

Sve*_*ach 6

并不是的.在Python中,赋值是一个语句,而在C中它是一个表达式.if语句中的条件必须是两种语言中的表达式.

  • 我怀疑这个设计决定实际上是为了防止这种结构.尽管如此,我没有任何消息来源:P (4认同)
  • @detly:[effbot知道所有](http://effbot.org/pyfaq/why-can-ti-use-an-assignment-in-an-expression.htm)"不允许在Python表达式中赋值的原因这是其他语言中常见的,难以发现的错误" (2认同)