RPython 支持生成器吗?

9 投票
1 回答
1210 浏览
提问于 2025-04-16 19:09

RPython支持生成器吗?因为我刚刚在PyPy的文档中看到说它们不支持。

PyPy文档 - 编码指南

生成器似乎很容易转换成像C这样的静态类型语言,因为每一步生成都是在函数调用中完成的。

有人能解释一下为什么吗?或者多说说这个话题。我现在正在学习如何编写RPython安全代码的基础知识。

1 个回答

22

生成器之所以不被支持,主要是因为当时并没有这个需求。问题不在于C语言中有类似的功能,而在于需要保持生成器的状态。因为RPython的框架会被转换成C语言的框架,所以如果要完全支持Python的生成器,就需要一些方法来获取C框架并把它复制到其他地方,或者找到其他的解决办法。

这件事比较复杂,而且当时并没有必要,所以就没有实现。

撰写回答