gpt4 book ai didi

python - 如何检查是否使用了生成器?

转载 作者:太空狗 更新时间:2023-10-30 02:02:17 24 4
gpt4 key购买 nike

是否可以知道是否使用了生成器?即

def code_reader(code):
for c in code:
yield c

code_rdr = code_reader(my_code)

a = code_rdr.next()

foo(code_rdr)

foo 调用后,我想知道 .next() 是否被 foocode_rdr 上调用了或不。当然,我可以用一些带有 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'

关于python - 如何检查是否使用了生成器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42715634/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com