栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

为什么删除else会使我的代码变慢?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

为什么删除else会使我的代码变慢?

对我来说,它们的速度几乎相同:(Debian上的Python 2.6.6)

In [4]: %timeit fact1(1)10000000 loops, best of 3: 151 ns per loopIn [5]: %timeit fact2(1)10000000 loops, best of 3: 154 ns per loop

字节码也非常相似:

In [6]: dis.dis(fact1)  20 LOAD_FAST     0 (n)   3 LOAD_ConST    1 (2)   6 COMPARE_OP    0 (<)   9 JUMP_IF_FALSE 5 (to 17)  12 POP_TOP    3          13 LOAD_ConST    2 (1)  16 RETURN_VALUE     >>   17 POP_TOP    5          18 LOAD_FAST     0 (n)  21 LOAD_GLOBAL   0 (fact)  24 LOAD_FAST     0 (n)  27 LOAD_ConST    2 (1)  30 BINARY_SUBTRACT       31 CALL_FUNCTION 1  34 BINARY_MULTIPLY       35 RETURN_VALUE          36 LOAD_ConST    0 (None)  39 RETURN_VALUE        In [7]: dis.dis(fact2)  20 LOAD_FAST     0 (n)   3 LOAD_ConST    1 (2)   6 COMPARE_OP    0 (<)   9 JUMP_IF_FALSE 5 (to 17)  12 POP_TOP    3          13 LOAD_ConST    2 (1)  16 RETURN_VALUE     >>   17 POP_TOP    4          18 LOAD_FAST     0 (n)  21 LOAD_GLOBAL   0 (fact)  24 LOAD_FAST     0 (n)  27 LOAD_ConST    2 (1)  30 BINARY_SUBTRACT       31 CALL_FUNCTION 1  34 BINARY_MULTIPLY       35 RETURN_VALUE        

唯一的区别是,如果控制到达函数主体的末尾,则else返回包含代码的版本None。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/639901.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号