这里是我正在运行的代码:
def infinite_Third() -> Generator:
num = 1
while True:
if num % 3 ==0:
i = (yield num)
if i is not None:
num = i
num += 1
if __name__=='__main__':
third_gen = infinite_Third()
for i in third_gen:
print(f"it is {i}")
if i>1000:
break
third_gen.send(10*i+1)
我期望能够看到以下结果:
it is 3
it is 33
it is 333
it is 3333
然而,我实际得到的是:
it is 3
it is 36
it is 366
it is 3666
我认为这可能与在主代码中使用send
有关,但是无法找出原因。 有人可以帮忙吗?
third_gen.send
的返回值。 - JoseKilosend
也会接收一个值。 - user2357112