我想要做的东西像下面这样:在循环中调用函数并将返回值存储到变量中,然后在循环中使用?
while myFunc() as myVar:
print myVar
基本上,只要打电话到循环线,将返回一个值,然后继续循环取决于值的功能,但我也希望能够在循环中使用该值,我宁愿不必第二次调用该函数。
我想什么来避免:
while myFunc():
myVar = myFunc()
print myVar
我想要做的东西像下面这样:在循环中调用函数并将返回值存储到变量中,然后在循环中使用?
while myFunc() as myVar:
print myVar
基本上,只要打电话到循环线,将返回一个值,然后继续循环取决于值的功能,但我也希望能够在循环中使用该值,我宁愿不必第二次调用该函数。
我想什么来避免:
while myFunc():
myVar = myFunc()
print myVar
使用发电机,其返回值。
for myVal in myFunc():
print myVal
这是yield语句的组合。
for myVar in iter(myFunc, sentinel):
print myVar
这等同于以下:
while True:
myVar = myFunc()
if myVar == sentinel:
break
print myVar
从文档为iter()
:
为什么不是gen-exp? (for myVal in(myFunc()for _ in itertools.count()):' – Bakuriu
不,对不起。您必须找到另一种语言,Python不会在表达式中执行任务(太容易造成错误)。 –