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

Python常见问题解答:“异常有多快?”

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

Python常见问题解答:“异常有多快?”

捕获异常 非常 昂贵,但是异常应该是 例外的 (读取,不经常发生)。如果例外情况很少,

try/catch
则比LBYL要快。

下面的示例在密钥存在和不存在时使用异常和LBYL对字典密钥进行计时:

import timeits = []s.append('''try:    x = D['key']except KeyError:    x = None''')s.append('''x = D['key'] if 'key' in D else None''')s.append('''try:    x = D['xxx']except KeyError:    x = None''')s.append('''x = D['xxx'] if 'xxx' in D else None''')for i,c in enumerate(s,1):    t = timeit.Timer(c,"D={'key':'value'}")    print('Run',i,'=',min(t.repeat()))

输出量

Run 1 = 0.05600167960596991       # try/catch, key existsRun 2 = 0.08530091918578364       # LBYL, key exists (slower)Run 3 = 0.3486251291120652        # try/catch, key doesn't exist (MUCH slower)Run 4 = 0.050621117060586585      # LBYL, key doesn't exist

当通常情况也不例外

try/catch
时,与LBYL相比是“极其有效”的。



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

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

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