gpt4 book ai didi

python - 三元运算符有异常(exception)吗?

转载 作者:行者123 更新时间:2023-12-02 03:41:30 25 4
gpt4 key购买 nike

我经常发现自己编写如下代码:

try:
name = names[2]
except IndexError:
name = names[1]

或者也许:

try:
name = Names.first
except AttributeError:
name = Names.default

由于三元运算符有一个很好的语法,我想知道异常是否有类似的语法?像这样的东西:

name = names[2] except IndexError names[1]

name = Names.first except AttributeError Names.default

符合三元运算符风格:

name = names[2] if names[2] else names[1]

最佳答案

没有用于处理异常的表达式(尽管有 rejected PEP 试图引入一个表达式)。但是,您可以首先避免异常。

name = names[2:0:-1][0]  # At the cost of making a small temporary list object

假设 names 至少有 2 个值,切片会生成一个列表,其第一个元素是 names[2]names[1],取决于 names 实际有多少个元素。使用 [0] 检索切片的第一个元素。

也没有与 dict.get 等效的东西可以让您编写类似 names.get(2, names[1]) 的内容,尽管这表明也许您的列表应该是一个dict或具有更多语义结构的东西。

关于python - 三元运算符有异常(exception)吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59898567/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com