python

当前位置:中华考试网 >> python >> python编程基础 >> 文章内容

解析python生成器函数的调用

来源:中华考试网  [2020年11月18日]  【

  生成器可以是在工作完成后自动继续工作吗?这是大家给小编出的问题,关于生成器,其实它在工作完以后,只能去重新创建一个生成器对象,这样才能保证工作的正常运转,口说无凭,我给大家走一遍流程,大家可以仔细观察就理解明白了。

  观察生成器函数执行过程:

  import random

  def genRandom():

  #yield关键字

  r = random.randint(0,1000)

  print('befor yield')

  yield r

  print('after yield')

  genfunc = genRandom()

  第一次调用:

  print(next(genfunc))

  结果:没有执行:print('after yield')

  befor yield

  726

  分析:调用yield之后,返回产生随机数:314,然后停止

  再次执行:

  print(next(genfunc))

  结果:

  after yield

  StopIteration Traceback (most recent call last)

  从上述内容我们可以看出,执行yield下一条语句,并报异常,这是因为通过异常告知调用者,生成器执行结束,那么如果想要再次执行生成器,必须重新创建生成器对象。

责编:fushihao

上一篇:calendar可以在python3时间中生成日历吗?

下一篇: 没有了

  • 会计考试
  • 建筑工程
  • 职业资格
  • 医药考试
  • 外语考试
  • 学历考试