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

2024-04-24 14:55:16 发布

您现在位置:Python中文网/ 问答频道 /正文

我是python和Django的新手。我一直在玩Django民意测验教程,一切都很顺利,但我还是习惯了语法。你知道吗

这一行用普通英语读什么?你知道吗

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

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


Tags: djangoltselfdatetimedatereturn语法教程
1条回答
网友
1楼 · 发布于 2024-04-24 14:55:16

简而言之:它检查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是否在昨天(同一时间)和当前时间戳之间。你知道吗

相关问题 更多 >