热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

pythontry用法_在python中使用tryvsif

你经常听到Python鼓励EAFP风格(“请求宽恕比允许容易”)LBYL风格(“跳跃前看”)。对我来说,这是一个效率和可读性的问题。在您的示例中(例如,

你经常听到Python鼓励EAFP风格(“请求宽恕比允许容易”)LBYL风格(“跳跃前看”)。对我来说,这是一个效率和可读性的问题。

在您的示例中(例如,函数不是返回一个列表或空字符串,而是返回一个列表或None),如果你期望99%的时间result将包含一些可迭代的内容,我将使用try/except接近。如果例外真的是例外的话,它会更快。如果result是None超过50%的时间,然后使用if可能更好。

为了通过一些测量来支持这一点:>>> import timeit>>> timeit.timeit(setup="a=1;b=1", stmt="a/b") # no error checking0.06379691968322732>>> timeit.timeit(setup="a=1;b=1",

stmt="try:\n a/b\nexcept ZeroDivisionError:\n pass")0.0829463709378615>>> timeit.timeit(setup="a=1;b=0", stmt="try:\n a/b\nexcept ZeroDivisi

onError:\n pass")0.5070195056614466>>> timeit.timeit(setup="a=1;b=1", stmt="if b!=0:\n a/b")0.11940114974277094>>> timeit.timeit(setup=

"a=1;b=0", stmt="if b!=0:\n a/b")0.051202772912802175

所以,鉴于if陈述总花你的钱,几乎可以免费设置一个try/except封锁。但当Exception实际发生时,成本要高得多。

道德:它完全可以使用(和“丙酮”)

try/except为了流量控制,

但最有意义的是

ExceptionS实际上是很特别的。

来自Python文档:EAFP

请求宽恕比请求许可容易。这种常见的Python编码方式假定存在有效的键或属性,如果假设为false,则捕获异常。这种干净而快速的风格的特点是有许多人在场。try和except陈述。这种技术与LBYL许多其他语言(如C.



推荐阅读
author-avatar
000猫000故事
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有