python如果条件和“和”

时间:2013-03-14 11:24:03

标签: python

 >>> def foo(a):
        print "called the function"
        if(a==1):
            return 1
        else:
            return None
>>> a=1

>>> if(foo(a) != None and foo(a) ==1):
    print "asdf"

called the function
called the function
asdf

您好。   如何避免在不使用额外变量的情况下调用该函数两次。

4 个答案:

答案 0 :(得分:12)

您可以像这样链接比较

if None != foo(a) == 1:

这就像

一样
if (None != foo(a)) and (foo(a) == 1):

除了它只评估foo(a)一次。

答案 1 :(得分:7)

  

如何避免在不使用额外变量的情况下调用该函数两次。

在这里,你可以简单地替换

if(foo(a) != None and foo(a) ==1):

if foo(a) == 1:

foo(a) != None是多余的:如果foo(a) == 1,则保证不是None

答案 2 :(得分:1)

以下陈述

if foo(a) == 1:

将处理这两个条件。

答案 3 :(得分:1)

如果foo(a)== 1,那么foo(a)将不是None,

将您的代码简化为:

if foo(a):
    print('asdf')