在这种情况下,条件语句有点没有意义(除了一些非常奇怪的情况,比如覆盖 的等于/整数/布尔值number)。
基本上你现在正在做的事情是这样的:
def number(number):
if number:
return number
else:
return number == 3
如果有一个and它会很有用,现在它是没有意义的。
or 可以像这样有用:
return spam or eggs
如果 spam 不为空,它将返回垃圾邮件,否则将返回鸡蛋。
插图顺便说一句:
>>> for number in range(5):
... print 'number', number, number or number == 3
number 0 False
number 1 1
number 2 2
number 3 3
number 4 4
长版number and number == 3 or 5
def number(number):
if number and number == 3:
return 3
else:
return 5
这spam and spam.eggs东西很有用,因为如果它spam不会None执行spam.eggs通常会给出AttributeError.