小编use*_*562的帖子

生成器如何在python中工作

我是Python和编程的新手.对于新程序员来说,生成器有点太复杂了.这是我在Python中关于生成器函数的理论:

  1. 任何包含yield语句的函数都将返回一个生成器对象

  2. 生成器对象是堆栈包含状态

  3. 每次调用.next方法时,Python都会提取函数的状态,当它找到另一个yield语句时,它会再次绑定状态并删除先前的状态:

例:

 [ 
  [state1] # Stack contains states and states contain info about the function
  [state2] # State1 will be deleted when python finds the other yield? 
 ] 
Run Code Online (Sandbox Code Playgroud)

这当然可能就像地球上最愚蠢的理论,但请原谅我,我只是编码中的新词.

我的问题:

  1. Python内部用于存储状态的内容是什么?

  2. yield如果存在,语句是否会向堆栈添加状态?

  3. 什么产量在内部产生?我理解yield会创建一个生成器对象,但是,我想知道生成器对象包含什么使它们工作?它们只是一个堆栈/状态列表,我们使用.next方法来提取每个状态,Python会自动调用具有索引状态的函数吗?

python generator yield-keyword

8
推荐指数
1
解决办法
1162
查看次数

标签 统计

generator ×1

python ×1

yield-keyword ×1