首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对if使用长谓词的Python样式

对if使用长谓词的Python样式
EN

Stack Overflow用户
提问于 2013-11-14 23:22:25
回答 2查看 102关注 0票数 2

考虑下面的代码:

代码语言:javascript
复制
if (something1 is not None and
    check_property(something_else) and
    dr_jekyll is mr_hyde):
    do_something(*args)
    other_statements()

尽管代码是以PEP-8的方式编写的,但显然很难判断谓词的结束位置和主体语句的开始位置。

我们设计了两个变体:

代码语言:javascript
复制
if ((something1 is not None) and
    (check_property(something_else)) and
    (dr_jekyll is mr_hyde)):
    do_something(*args)
    other_statements()

这是丑陋的

代码语言:javascript
复制
if (something1 is not None and
        check_property(something_else) and
        dr_jekyll is mr_hyde):
    do_something(*args)
    other_statements()

这也很丑陋。

我个人更喜欢#1,我的同事使用#2。有没有一个非丑陋的和PEP-8兼容的规范解决方案,可以改善上面列出的方法的可读性?

EN

回答 2

Stack Overflow用户

发布于 2013-11-14 23:26:54

使用all()更改if语句

代码语言:javascript
复制
if all([something1 is not None, 
        check_property(something_else), 
        dr_jekyll is mr_hyde]):
    #do stuff...
票数 3
EN

Stack Overflow用户

发布于 2013-11-14 23:32:36

根据您的上下文,您可能不需要is not None

代码语言:javascript
复制
>>> a = [1]
>>> if a:
        print "hello, world"


hello, world
>>> if a is not None:
        print "hello, world"


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

https://stackoverflow.com/questions/19981513

复制
相关文章

相似问题

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