我是Python和Django的新手。我正在研究輪詢教程,並決定在這裏發佈一個問題,這是比Python更多的Python ... 在Writing Your First Django App, part 5
, - >Writing our first test
,他們提出了一個錯誤,然後創建一個測試來暴露該錯誤,運行測試將導致測試失敗。爲什麼我不能在django poll教程第5部分的bug修復中使用now變量
修復如下 - >修改models.py
中的方法如下 - >測試將返回true
。
def was_published_recently(self):
now = timezone.now()
return now - datetime.timedelta(days=1) <= self.pub_date < now
我的問題是,當我沒有替代變量now
,測試將fail
下面輸入。這是爲什麼?這不是一個簡單的替代?
def was_published_recently(self):
return timezone.now() - datetime.timedelta(days=1) <= self.pub_date < timezone.now()
你真的用無效的[** indentation **](http://www.diveintopython.net/getting_to_know_python/indenting_code.html)(從同一列開始的'def'和'return')編寫代碼嗎?這會導致語法錯誤,並且測試失敗。 –
這不完全相同,在你的替換之後,timezone.now()被調用了兩次,而那些次數不是相同的(可能是毫秒差)。我不知道這是否是tho的原因。 – utdemir
除了縮進(這似乎只是一個複製和粘貼問題),真正的錯誤是在調用now()兩次,就像@ utdemir描述的一樣。 –