【发布时间】:2011-06-19 16:17:15
【问题描述】:
为什么 Python 赋值是语句而不是表达式?如果它是一个返回赋值右侧值的表达式,那么在某些情况下它会允许更少冗长的代码。有什么我看不到的问题吗?
例如:
# lst is some sequence
# X is come class
x = X()
lst.append(x)
可以改写为:
lst.append(x = X())
好吧,确切地说,上面的方法不起作用,因为x 将被视为关键字参数。但是另一对括号(或关键字参数的另一个符号)会解决这个问题。
【问题讨论】:
-
您的代码示例与问题有什么关系?
-
@Ignacio:我的错。编辑的版本(@Laurence Gonsalves)很好。
-
“有什么我看不到的问题吗?”看起来“更简洁的代码”在某种程度上不是问题。简洁,神秘的代码高尔夫似乎是一个问题。您是否出于某种原因打折了那个?
-
@S Lott:我想我在想一些简单的例子(比如我给出的那个,我觉得不太神秘);我同意滥用此功能的能力可能是反对此功能的原因之一。
-
我喜欢这个问题和其他类似的问题。我相信答案和 cmets 非常有建设性和帮助。我只是很惊讶关闭警察还没有像 NC 一样关闭它;-)
标签: python python-3.x language-design