我有这段代码:
if self.date: # check date is not NoneType
if self.live and self.date <= now and self.date >= now:
return True
return False
我的IDE说:看起来它应该简化,即Python链式比较。
什么是链式比较?如何简化?
答案 0 :(得分:5)
链式比较的一个例子如下所示。
age = 25
if 18 < age <= 25:
print('Chained comparison!')
请注意,在封面下方,这是exactly the same,如下所示,它看起来更好。
age = 25
if 18 < age and age <= 25:
print('Chained comparison!')
答案 1 :(得分:4)
self.age <= now and self.age >= now
可以简化为:
now <= self.age <= now
但是,只有当self.age
等于now
时它才为真,我们才能将整个算法简化为:
if self.date and self.live and self.age==now:
return True
return False
如果您想检查年龄是否在某个范围内,请使用链式比较:
if lower<=self.age<=Upper:
...
或者:
if self.age in range(Lower, Upper+1):
...
答案 2 :(得分:1)
您的代码可以而且应该简化为:
return self.date and self.live and self.date == now
这是因为:
now <= self.date <= now
在数学上等于self.date == now
关于减少a <= b and b<= c
:它与a <= b <= c
相同;这实际上适用于任何其他运营商。
答案 3 :(得分:0)
要检查x
高级到5
而低级到20
,您可以使用简化链比较,即:
x = 10
if 5 < x < 20:
# yes, x is superior to 5 and x is inferior to 20
# it's the same as: if x > 5 and x < 20:
以上是一个简单的示例,但我想它会帮助新用户开始使用python