我只是在查看Python
FAQ,因为它是另一个问题中提到的。以前从未真正详细地研究过它,我遇到了一个问题:“例外情况有多快?”:
try / except块非常有效。实际上捕获异常是昂贵的。在2.0之前的Python版本中,通常使用以下习惯用法:
try: value = mydict[key] except KeyError: mydict[key] = getvalue(key) value = mydict[key]
我对 “捕获异常代价高昂”这一
部分感到有些惊讶。这是否仅是指except
您实际上将异常保存在变量中的情况,或者通常是所有except
s(包括上面示例中的一个)的情况?
我一直认为,使用所示的惯用法是非常Python的,尤其是在Python中, “获得宽容比获得Permission更为容易”
。SO上的许多答案通常也遵循此想法。
捕获异常的性能真的那么差吗?在这种情况下,是否应该追随LBYL(“三思而后行”)?
(请注意,我并不是直接从FAQ中谈论示例;在许多其他示例中,您只是在寻找异常而不是在之前检查类型。)
捕获异常 非常 昂贵,但是异常应该是 例外的 (读取,不经常发生)。如果例外情况很少,try/catch
则比LBYL要快。
下面的示例在密钥存在和不存在时使用异常和LBYL对字典密钥进行计时:
import timeit
s = []
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 exists
Run 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相比是“极其有效”的。
问1:INSERT/UPDATE/DELETE被解析为Query或DDL语句? 答1: 出现这类情况主要原因为收到的binlog就为Query事件,比如: binlog格式为非row模式,通过show variables like 'binlog_format'可以查看. 针对statement/mixed模式,DML语句都会是以SQL语句存在 mysql5.6+之后,在binlog为row模式下
本页面罗列了大家使用 YApi 时遇到的常见问题. 如果没有找到您要的答案,请联系管理员. Q1 怎样联系组长? 组长分为 分组组长 和 项目组长: 分组组长:选择首页左侧的分组,点击右侧面板的 成员列表,成员右侧显示着 组长/开发者 的权限信息。 项目组长: 点击项目页的 设置 - 成员列表,成员右侧显示着 组长/开发者 的权限信息。 Q2 怎么快速迁移旧项目? 第一步. 使用 Chrome 浏
译者:冯宝宝 我的模型报告“cuda runtime error(2): out of memory” 正如错误消息所示,您的GPU显存已耗尽。由于经常在PyTorch中处理大量数据,因此小错误会迅速导致程序耗尽所有GPU资源; 幸运的是,这些情况下的修复通常很简单。这里有一些常见点需要检查: 不要在训练循环中积累历史记录。 默认情况下,涉及需要梯度计算的变量将保留历史记录。这意味着您应该避免在计
版本 Unity2018.3以上需要用最新ILRuntime。 最新的发布版本为V2.0,Unity2018以上可通过Package Manager方式安装 V1.4已过时,示例工程内的版本已过时,当前最新版本为master分支。 ILRuntime的性能到底怎么样 最新版ILRuntime在若干若干测试用例中,包括大规模数值计算的场景,均已超过Lua53版xlua,详细测试可参考 U3D Dem
1.Q:导出的PPT是否支持动态图表?做的图表能否动态导入PPT或word中? A:不支持, 动态交互性图表是由代码组成,浏览器内核才能解析。图表秀有office插件,可以支持PPT中插入动态图表,可以参考帮助文档“如何在PPT中插入图表”。 2.Q:图表的颜色能否修改? A:在图表编辑工具中可以设置单个图表的颜色。在图册中图表颜色是在主题色系中,通过切换系统主题或者自定义主题就可以修改图表颜色。
如何引用 Keras? 如何在 GPU 上运行 Keras? 如何在多 GPU 上运行 Keras 模型? "sample", "batch", "epoch" 分别是什么? 如何保存 Keras 模型? 为什么训练集误差比测试集的误差高很多? 如何获取中间层的输出? 如何用 Keras 处理超过内存的数据集? 在验证集的误差不再下降时,如何中断训练? 验证集划分是如何计算的? 在训练过程中数据是