在Python中不允许有条件的赋值?

时间:2014-03-24 03:28:03

标签: python syntax

为什么代码像

if a = "hello":
    pass

在Python中无效? a ="你好"只是一个表达式,其值为Rvalue。它在C或php等大多数语言中都有效。一些意见?

2 个答案:

答案 0 :(得分:2)

虽然Python允许你进行链接分配,

a = b = "hello"

它不允许你在表达式中使用它,

"hi" > b = "hello"    # => Syntax error

这是为了安全起见,以防止意外使用=当你的意思是==

答案 1 :(得分:1)

这在python中故意被认为是非法的,因为它允许它是一个巨大的错误来源并使其成为非法是一个小小的不便。

请参阅the Design and History FAQ

我在python中的经验是,这基本上是正确的。我很少想念不能这样做。