Discuss / Python / 英语不好真是太麻烦了。还是没明白reader, writer = yield from connect

英语不好真是太麻烦了。还是没明白reader, writer = yield from connect

Topic source

梦炸

#1 Created at ... [Delete] [Delete and Lock User]

有没有大神总结下yield from的用法啊,reader,writer是reader=.send(writer)的作用吗?

应该是接收和传递数据用的。

个人理解是 在reader, writer = yield from connect这里,当前执行程序(sina)跳出,直接执行下一个线程即(sina),同样在遇到yield后再执行下一个(163) 当connect这个coroutine执行完毕后,会返回None也就是send(None)或者__next__()随后继续执行(sina)接下来命令

yield from connect 相当于 for writer, reader in connect: yield writer, reader connect 返回了两个参数,所以这里应该是参数解包

def xf(): yield 1,'a'; yield 2,'b'; yield 3,'c'; yield 4,'d';

def fr(): yield from xf();

for x,y in fr(): print(x,y);

在我理解看来yield from就是挂起执行,这个reader和writer都是connect的返回值,也就是说,挂着去执行connet这个方法(即连接上面的网址),这边等待中,然后去执行其他的逻辑了,等这里connet成功会返回reader和writer继续执行

返回值是一对IO,分别代表读写,当执行获取header时,3个程序协同工作,互不影响,也因此不分先后,无需等待


  • 1

Reply