【发布时间】:2013-01-30 16:50:39
【问题描述】:
为什么禁止在 python 三元条件的两边使用语句?我看不出以下一些幼稚的语法示例可能模棱两可或损坏的任何明显原因 - 但我确信必须有充分的理由来禁止它!
>>> x, y = 0, 0
>>> (x += 1) if random.choice([0, 1]) else (y += 1)
^
SyntaxError: invalid syntax
>>> (x if random.choice([0, 1]) else y) += 1
SyntaxError: can't assign to conditional expression
>>> print 'hello world' if random.choice([0, 1]) else raise StandardError()
File "<stdin>", line 1
print 'hello world' if random.choice([0, 1]) else raise StandardError()
^
SyntaxError: invalid syntax
您能举一个例子,说明允许在三元组中使用语句可能是危险的或定义不明确的吗?
【问题讨论】:
-
每一种脚本语言都必须有一个专门用来迷惑 C 程序员的特性。 Lua:数组是从 1 开始的。红宝石:0 是真的。 Python:赋值是一个语句。