我已经在Python和JS上工作了一段时间,想要了解Python中生成器的yield与ES6中的yield之间行为差异
在Python中使用yield可以节省内存,因为它每次只生成1个项目。ES6中的yield是否也是这样呢?
我已经在Python和JS上工作了一段时间,想要了解Python中生成器的yield与ES6中的yield之间行为差异
在Python中使用yield可以节省内存,因为它每次只生成1个项目。ES6中的yield是否也是这样呢?
1 + 2 + x
转换为3 + x
在字节码中,但由于运算符重载和操作顺序,它不能将x + 1 + 2
转换为x + 3
,因为它不能假设x + 1
将返回一个int
,并且它不能知道加法对于x
所代表的任何类型来说是否具有结合律)。因此,当您在CPython中使用生成器时,它将始终作为生成器在运行时执行。