繁体   English   中英

为什么python不支持:while(s = f.readline())?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM