python中的复杂布尔表达式(django)

时间:2014-01-30 09:57:31

标签: python django boolean

以下行是什么意思?

return now - datetime.timedelta(days=1) <= self.pub_date <  now

位于以下链接 https://docs.djangoproject.com/en/1.6/intro/tutorial05/

2 个答案:

答案 0 :(得分:3)

这称为链式comparison,大致相当于:

now - datetime.timedelta(days=1) <= self.pub_date and  self.pub_date <  now

来自docs:

  

x < y <= z相当于x < yy <= z,但y除外   仅评估一次(但在两种情况下,z都不进行评估   发现x < y是假的。)

此处now是当前时间,now - datetime.timedelta(days=1)是当前时间减去一天,因此,如果发布日期位于此时间间隔内,则上述表达式将为True

答案 1 :(得分:2)

如果self.pubdate过去,则返回true,但最多1天。

在此上下文中,如果项目(True)最近发布,则返回self是一个布尔表达式,否则为False