这行代码用普通的英语读什么?

时间:2019-05-07 17:12:17

标签: python django

我是python和Django的新手。我一直在玩Django民意调查教程,并且一切进展顺利,但是我仍然习惯语法。

这行用普通的英语读什么?

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

我遇到麻烦的部分是<=运算符。我知道这通常意味着小于或等于,但我从未见过像上述那样连续使用它们。

1 个答案:

答案 0 :(得分:6)

简而言之:它检查self.pub_date是否在nownow之前的24小时之间。

Python允许operator chaining [Python-doc]。这意味着如果您写x <= y <= z,那是x <= y and y <= z的缩写,除了y仅被评估一次。

因此,您可以将其读取为:

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

现在now可能是当前时间戳,所以这意味着now - datetime.timedelta(days=1)now早24小时。简而言之,它检查self.pub_date是否在nownow(包括两者)之前的24小时之间。如果满足,则返回True,否则返回False

很可能-尽管我们无法检查-now是当前时间戳,所以这意味着self.pub_date是否在昨天(同一时间)和当前时间戳之间。