Python练习-生成器-一个生成器被坑的体无完肤
代码如下,尽可能独立阅读:
1 # 编辑者:闫龙 2 from urllib.request import urlopen #导入一个包,这就是egon留的一个坑 3 def get(url):#这是为了保证题目的原装性所以还是要有一个url参数,实际上完全没有这个必要 4 def index():#可能是egon想要我们更加熟悉闭包的概念 5 while True: 6 url = yield#在这里将yield返回的值赋给url 7 print(urlopen(url).read())#打印url读出的结果 8 return index 9 g=get("纯粹为了题目要求留出的无聊参数")()#这里为了题目中的g生成器函数返回值 10 #其实上面这句话可以被理解为↓ 11 #Gen = get("纯粹为了题目要求留出的无聊参数") 12 #g = Gen() 13 #这里就是用到了多重函数的概念 14 next(g)#程序执行到yield时,url等待yield的返回值 15 g.send("http://www.baidu.com")#将参数值使用send的方式传递给yield 16 #传值之后yield将值返回给url,程序继续执行直到循环再次遇到yield时,url等待yield的返回值 17 g.send("http://www.oldboyedu.com/") 18 g.send("http://www.python.org")