[英]why python not supporting : while( s = f.readline())?
更多示例如下:
if (a = xyz() ) > abc:
真想知道为什么,难道是难闻的种类?
注意:我知道语法,但我问为什么Python不支持这样的语法,因为许多其他语言(例如,c,java ...)支持
从python设计FAQ :
不允许在Python表达式中赋值的原因是由这个构造引起的其他语言中常见的,难以发现的错误:
if (x = 0) { // error handling } else { // code that only works for nonzero x }
错误是一个简单的错字:x = 0,它将0赋给变量x,而比较x == 0肯定是预期的。
正如FAQ中所解释的那样,使用迭代器可以覆盖在表达式中使用赋值的大多数“用例”。
记住python哲学:应该有一个 - 最好只有一个 - 明显的方法来做到这一点。
这对我来说听起来不太明显!
您也可以查看此答案:
为什么python赋值不返回值
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.