我想要一个处理预定义管道中数据的函数,我需要中间和最后一步的数据,所以我想要一个可以调用两次的函数,在第一次调用中,函数返回中间数据,在第二次调用中,函数从最后一个返回位置开始并返回最终数据,比如说:
def tworeturns(x):
intermediate = do-something(x)
return intermediate
final = do-something(intermediate)
return final
如何用python实现这一点?你知道吗
==========================================================================================
由于new-dev-123的回答,我能够返回两个值,但后来我遇到了另一个问题。在第一个yield之后,我更改了intermediate,当我第二次调用next时,我希望函数基于修改后的intermediate进行计算,而不是原始的intermediate。有办法吗?你知道吗
使用协同程序这样的生成器可以有效地暂停函数,并可以使用
next()
驱动它下面是我在cli上做的一个快速演示
以你的例子来说,你可以这样做:
返回两个值(这将为您提供一个元组):
好吧,这是个好问题,我有时也会遇到类似的情况。你知道吗
正如对你的问题的一个评论所说的,你可以使用一个生成器,它从字面上回答你的问题。你知道吗
但我更喜欢以下解决方案:
当然,现在需要用中间结果调用
tworeturns
。但这是一个清晰的代码,而且是无状态的。你知道吗相关问题 更多 >
编程相关推荐