usu*_* me 2 python yield generator python-2.7 python-internals
我知道如何使用发电机,但我对它们的内部结构一无所知.我试过这个:
In [4]: def f(): yield 1
In [6]: type(f())
Out[6]: generator
Run Code Online (Sandbox Code Playgroud)
现在我拆开它:
In [7]: dis.dis(f)
1 0 LOAD_CONST 1 (1)
3 YIELD_VALUE
4 POP_TOP
5 LOAD_CONST 0 (None)
8 RETURN_VALUE
Run Code Online (Sandbox Code Playgroud)
为什么操作码会return None在f实际返回生成器时提示?