python - Python 生成器的缺点?
问题描述
每个人都在谈论在 Python 中使用生成器的优势。这真的很酷而且很有用。但是没有人谈论他们的缺点。而面试官通常会利用这个差距。
那么除了这两个之外,使用生成器还有其他缺点吗?
- 对于生成器的工作,您需要将生成器函数的变量保存在内存中。
- 每次您想重用集合中的元素时,都必须重新生成它。
解决方案
- 对于生成器的工作,您需要将生成器函数的变量保存在内存中。
但是您不必将整个集合保存在内存中,因此通常这正是您想要做出的权衡。
- 每次您想重用集合中的元素时,都必须重新生成它。
必须重新创建生成器,但不需要重新创建集合。所以这可能不是问题。
本质上,它归结为关于 Lazy 与 Eager 评估的讨论。您需要权衡 CPU 开销以换取流处理能力(而不是使用急切评估的批量处理)。如果使用惰性方法,代码可能会变得更加难以阅读,因此也可能需要在性能和简单性之间进行权衡。
推荐阅读
- elasticsearch - 将 geo_shape 读取为 GeoJSON 文本
- flutter - 我怎样才能创建一个表如下
- python-3.x - 查找调用特定方法的类对象
- java - 配置 Jolokia 服务器和代理的问题
- javascript - 有没有办法让一个 div 的高度与另一个 div 的高度相同,而不需要两个 div 都在同一个容器中?
- jquery - 如何长出一个圆圈来覆盖页面并成为菜单
- windows - 关闭并重新打开 PDF 文件
- c# - 通过 http post 收到的值对于 AngularJS 和 Web api 2 为空
- python - for 循环不迭代第二个值
- azure - 无法连接到本地 azure cosmosdb 模拟器