gpt4 book ai didi

python - Python 生成器如何知道谁在调用?

转载 作者:太空狗 更新时间:2023-10-29 22:22:59 25 4
gpt4 key购买 nike

这个问题让我抓狂。

如果我这样做:

def mygen():
for i in range(100):
yield i

并从一千个线程中调用它,生成器如何知道每个线程接下来要发送什么?

每次我调用它时,生成器是否会保存一个包含计数器和调用者引用或类似内容的表?

这很奇怪。

请澄清一下我的想法。

最佳答案

mygen 不需要记住任何东西。每次调用 mygen() 都会返回一个独立的可迭代对象。另一方面,这些可迭代对象具有状态:每次 next() 被调用时,它会跳转到生成器代码中的正确位置——当 yield遇到,控制权交还给调用者。实际实现起来比较困惑,但原则上你可以想象这样一个迭代器存储局部变量、字节码和字节码中的当前位置(也称为指令指针)。这里的线程没有什么特别之处。

关于python - Python 生成器如何知道谁在调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16389062/

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