在Java中,我可以在循环条件中设置变量
String s;
while ((s=myFunction())!=null){
System.out.println("It's there jim. "+s);
}
在这个例子中,s将被设置为myFunction()的结果。在Python中,我知道我可以将其作为
s = myFunction()
while s!=None:
print "It's there jim",s
s = myFunction()
但我想避免这样做。有没有办法在Python中使用上述Java代码?
答案 0 :(得分:2)
你不能用Python做到这一点。在Java中,赋值=
是表达式,它的计算结果为赋值变量的值。在Python中,=
赋值是语句,因此它没有值(它只是被执行)并且不能按照您描述的方式使用(请参阅此{{ 3}}了解详情)。更重要的是,如果您尝试在需要表达式的位置使用赋值,则会出现错误:
a = 0
(a = 10) + 1
=> SyntaxError: invalid syntax
答案 1 :(得分:1)
您可以使用iter
:
for s in iter(myFunction, None):
print "It's there jim", s
print s
但是乍一看它让人感到困惑,所以只要坚持你拥有的东西。