首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Python中嵌套三元运算符

在Python中嵌套三元运算符
EN

Stack Overflow用户
提问于 2013-10-29 06:14:28
回答 3查看 9.7K关注 0票数 10

在《巨蟒的禅宗》中,蒂姆·彼得斯指出,Flat is better than nested.。如果我理解正确的话,那么在Python中,这是:

代码语言:javascript
复制
<statement-1> if <condition> else <statement-2>

通常比这更受欢迎:

代码语言:javascript
复制
if <condition>:
    <statement-1>
else:
    <statement-2>

然而,在其他语言中,有人告诉我不要嵌套三元运算符,而是使用传统的if...else。那么,我的问题是,我是否应该使用这个:

代码语言:javascript
复制
(<statement-1> if <condition-1> else <statement-2>) if <condition-2> else <statement-3>

代码语言:javascript
复制
if <condition-2>:
    if <condition-1>:
        <statement-1>
    else:
        <statement-2>
else:
    <statement-3>

?尤其是如果语句和条件很长,并且第一行需要拆分?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-10-29 06:25:34

“平面比嵌套更好”是关于模块组织和数据结构,而不是你的源代码。例如,标准库主要作为顶级模块存在,嵌套很少。

不要嵌套三元运算符,如果可以避免的话,甚至根本不要使用它。复杂比复杂要好。:)

票数 2
EN

Stack Overflow用户

发布于 2013-10-29 08:09:34

您的第一个示例(可怕的一行代码)也是嵌套的。水平嵌套。您的第二个示例是垂直嵌套的。它们都是嵌套的。

那么哪一个更好呢?第二个!为什么?因为“稀疏比密集好”打破了平局。

当你是Tim Peters - LOL ;-)

票数 28
EN

Stack Overflow用户

发布于 2018-04-17 14:15:18

据我所知,这是"flater":

代码语言:javascript
复制
if <condition_2> and <condition_1>:
  <statement_1>
elif <condition_2>:
  <statement_2>
else:
  <statement_3>

要检查的条件的顺序很重要,例如,如果您只将<condition_2>作为检查的第一顺序,那么<statement_1>将永远不会被调用。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19646056

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档