python try用法_在python中使用try vs if

你经常听到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.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值