gpt4 book ai didi

python - 生成器表达式 : gi_running, gi_yieldfrom 中的方法等

转载 作者:行者123 更新时间:2023-12-03 23:49:04 29 4
gpt4 key购买 nike

我创建了以下生成器函数:

>>> def file_readlines(filepath):
... f = open(filepath, 'r')
... for line in f:
... yield line
...
>>> gen=file_readlines(filepath)
>>> next(gen)

当我检查生成器的方法时,它显示以下内容:

...'close', 'gi_code', 'gi_frame', 'gi_running', 'gi_yieldfrom', 'send', 'throw'`

throw , send , 和 close记录在 Python Expressions 中,我想 codeframe类似于堆栈跟踪对象,但什么是 gi_runninggi_yieldfrom ?那些是怎么用的?

最佳答案

gi_running告诉您解释器当前是否正在执行来自生成器框架的指令 ( gi_frame )
gi_yieldfrom是生成器产生的迭代器。它是在 3.5 中引入的,您可以在这里阅读增强票:https://bugs.python.org/issue24450

def yielder(gen):
yield from gen

x = range(5)
g = yielder(x)

print(g.gi_yieldfrom) # None
next(g) # delegate to the other iterator
print(g.gi_yieldfrom) # <range_iterator object at 0x0000026A0D72C830>
list(g) # exhaust iterator
print(g.gi_yieldfrom) # None

关于python - 生成器表达式 : gi_running, gi_yieldfrom 中的方法等,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60420670/

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