www*_*www 4 python yield generator
有可能知道是否使用了发电机?即
def code_reader(code):
for c in code:
yield c
code_rdr = code_reader(my_code)
a = code_rdr.next()
foo(code_rdr)
Run Code Online (Sandbox Code Playgroud)
经过foo电话,我想知道,如果.next()是呼吁code_rdr通过foo与否.当然我可以通过一些带有next()调用计数器的类来包装它.有没有简单的方法呢?
Python 3.2+有inspect.getgeneratorstate().所以你可以简单地使用inspect.getgeneratorstate(gen) == 'GEN_CREATED':
>>> import inspect
>>> gen = (i for i in range(3))
>>> inspect.getgeneratorstate(gen)
'GEN_CREATED'
>>> next(gen)
0
>>> inspect.getgeneratorstate(gen)
'GEN_SUSPENDED'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
171 次 |
| 最近记录: |