2

考虑这段代码:

if (something1 is not None and
    check_property(something_else) and
    dr_jekyll is mr_hyde):
    do_something(*args)
    other_statements()

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

我们设计了两种变体:

if ((something1 is not None) and
    (check_property(something_else)) and
    (dr_jekyll is mr_hyde)):
    do_something(*args)
    other_statements()

这是丑陋的

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 的规范解决方案,可以提高上面列出的方法的可读性?

4

2 回答 2

3

使用all()更改您的 if 语句:

if all([something1 is not None, 
        check_property(something_else), 
        dr_jekyll is mr_hyde]):
    #do stuff...
于 2013-11-14T15:26:54.377 回答
-1

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

>>> a = [1]
>>> if a:
        print "hello, world"


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


hello, world
>>> 
于 2013-11-14T15:32:35.903 回答