我需要在python中检查一个对象的变量,称为status。我所做的就是众所周知的:
if p.status() in range(21,30):
其中p是我的对象。我需要检查这个状态是否介于-21和-29之间,但只有当我用正数而不是负数写入范围时它才有效。我写的时候:
if p.status() in range(-30,-21):
它没有返回任何东西。 (当然我打印了这个对象的状态,我确信这个条件存在)。一些想法???
由于
答案 0 :(得分:4)
忘记range
。链式比较运算符更具可读性。
if -29 <= p.status() <= -21:
顺便说一句,stop
的{{1}}参数永远不会包含在返回值中,因此对于-21到-29 inlusive,你需要range
。
答案 1 :(得分:0)
您可以从0中减去该值,该值将产生一个正值,该值将在以下范围内:
if 0 - p.status() in range(21,30):