如何在用python编写的while语句中获取返回值?

时间:2016-03-24 21:57:11

标签: python while-loop return-value

我有一个确定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

2 个答案:

答案 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