【发布时间】:2019-09-25 09:45:19
【问题描述】:
我是 python 和 Django 的新手。我一直在玩 Django polls 教程,一切都很顺利,但我仍然习惯了语法。
这行用简单的英语读什么?
return now - datetime.timedelta(days=1) <= self.pub_date <= now
我遇到问题的部分是
【问题讨论】:
-
返回
pub_date是否在昨天(24 小时前)和现在之间。
我是 python 和 Django 的新手。我一直在玩 Django polls 教程,一切都很顺利,但我仍然习惯了语法。
这行用简单的英语读什么?
return now - datetime.timedelta(days=1) <= self.pub_date <= now
我遇到问题的部分是
【问题讨论】:
pub_date 是否在昨天(24 小时前)和现在之间。
简而言之:它检查self.pub_date 是否在now 和now 之前的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 是否在 now 和 now 之前的 24 小时之间(包括两者)。如果成立则返回True,否则返回False。
可能 - 虽然我们无法检查 - now 是当前时间戳,所以这意味着 self.pub_date 是否介于昨天(同一时间)和当前时间戳之间。
【讨论】: