在Python中的while循环中,使用其上一个返回值作为参数调用函数



我需要在while循环中继续调用以下函数,并将其上一个返回值作为参数:

def announce_lead_changes(last_leader=None):
"""Return a commentary function that announces lead changes.
>>> f0 = announce_lead_changes()
>>> f1 = f0(5, 0)
Player 0 takes the lead by 5
>>> f2 = f1(5, 12)
Player 1 takes the lead by 7
>>> f3 = f2(8, 12)
>>> f4 = f3(8, 13)
>>> f5 = f4(15, 13)
Player 0 takes the lead by 2
"""
def say(score0, score1):
if score0 > score1:
leader = 0
elif score1 > score0:
leader = 1
else:
leader = None
if leader != None and leader != last_leader:
print('Player', leader, 'takes the lead by', abs(score0 - score1))
return announce_lead_changes(leader)
return say

我理解doctest是如何工作的,但如何在while循环中实现它?我尝试了以下操作,但它在整个循环中不断传递默认参数:

commentary = both(say_scores, announce_lead_changes())
while
...
commentary(score0, score1)

为while循环中的每个迭代更新commentary。尝试:

commentary = both(say_scores, announce_lead_changes())
while
...
commentary = commentary(score0, score1)

最新更新