我是Python和编程的新手.对于新程序员来说,生成器有点太复杂了.这是我在Python中关于生成器函数的理论:
任何包含yield语句的函数都将返回一个生成器对象
生成器对象是堆栈包含状态
每次调用.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)
这当然可能就像地球上最愚蠢的理论,但请原谅我,我只是编码中的新词.
我的问题:
Python内部用于存储状态的内容是什么?
yield如果存在,语句是否会向堆栈添加状态?
什么产量在内部产生?我理解yield会创建一个生成器对象,但是,我想知道生成器对象包含什么使它们工作?它们只是一个堆栈/状态列表,我们使用.next方法来提取每个状态,Python会自动调用具有索引状态的函数吗?