我有一个确定UpdateStatus的函数:
def detemUpStatus(localTuple, newTuple):
# some logic...
# it would return integer which would get processed later
return int(some number predefined)
如果我们不需要更新,detemUpStatus
将返回0,所以我决定将其放在while
语句中,如:
while (returnValue = detemUpStatus(lT, nT)):
# some logic to do process update
# with returnValue...
返回
while (i = 2): ^
SyntaxError:语法无效
我对python很新,我认为应该有一种优雅的方式,比如语言C
。
答案 0 :(得分:2)
我认为您无法在while
子句中进行分配。一些替代方案:
returnValue = detemUpStatus(lT, nT)
while returnValue:
...
returnValue = detemUpStatus(lT, nT)
或者也许:
while True:
returnValue = detemUpStatus(lT, nT)
if not returnValue:
break
...
答案 1 :(得分:0)
你不能像C一样在while中进行赋值,但你可以使用带有sentinel值的iter
for循环来循环,直到函数返回0
,允许你使用返回的状态循环:
for status in iter(lambda: detemUpStatus(arg1,arg2), 0):
# use status