首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CPython循环优化

CPython循环优化
EN

Stack Overflow用户
提问于 2018-03-14 19:14:24
回答 1查看 209关注 0票数 0

有人能给我解释一下为什么CPython没有像循环不变优化那样的循环优化吗?例如:

代码语言:javascript
复制
for i in range(100000000000):
    pass

cpython不会跳过循环并花费一些时间来完成执行;while循环也会发生这种情况。

EN

回答 1

Stack Overflow用户

发布于 2018-03-14 19:24:30

因为python在运行循环之前不知道range是什么,因为内置代码可能会被重写。如果我这样做了

代码语言:javascript
复制
class range:
    def __init__(self, n):
        self.n = n
        global x 
        x = 0
    def __iter__(self):
       global x
       while x < self.n:
           yield x
           x += 1

for i in range(20): pass
print(x)  # prints 20

您可以看到,在动态语言中很难优化这样的东西

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49276294

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档