這將是一個科特林慣用替代以下蟒蛇協同程序片段:科特林替代Python的協程的產量和發送
def generator():
c = 1
while True:
op = yield c
if op == 'inc':
c += 1
elif op == 'mult':
c *= 2
# main
g = generator()
a = g.send(None) # start
b = g.send('inc')
c = g.send('mult')
d = g.send('inc')
print([a, b, c, d]) # 1, 2, 4, 5
所以我需要從協程得到的值(?通過一個通道),但也送這些值返回到協程。我需要兩個頻道嗎?
您嘗試了哪些解決方案?你應該指出這是一個嘗試的解決方案,或者不能正常工作。否則,你會說「請爲我寫代碼」,而不是「應該工作的代碼不是」 –
您將op設置爲1,所以它不會滿足您遞增或遞增的條件。 – alex