zoukankan      html  css  js  c++  java
  • 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")
  • 相关阅读:
    python基础(十七、变量进阶
    python基础(十六、变量进阶
    python基础(十五、变量进阶
    python基础(十四、变量进阶
    python基础(十三、综合应用
    MySQL-索引失效原理
    MySQL-忘记密码
    OSI七层模型
    Python-socket通信
    Python-编程小技巧
  • 原文地址:https://www.cnblogs.com/DragonFire/p/6696815.html
Copyright © 2011-2022 走看看