[英]Erratic behaviour of datetime.date in python
在調試似乎來自datetime.date的異常行為時,我得到了這個完全荒謬的會話。
這是成績單(添加了一些#評論)。 不幸的是,我沒有找到如何達到“ d”值的再現形式(它是通過隨機生成的日期/數字的大量匯總獲得的)
>>> d
[datetime.date(2027, 1, 1), datetime.date(2013, 3, 26)]
>>> d2 = [datetime.date(2027, 1, 1), datetime.date(2013, 3, 26)]
>>> d == d2 # ok so no misunderstanding
True
>>> min(d)
datetime.date(2027, 1, 1) # ???
>>> min(d2)
datetime.date(2013, 3, 26) # fine
>>> max(d)
datetime.date(2013, 3, 26) # ?!?
>>> max(d2)
datetime.date(2027, 1, 1) # fine
我知道我要問的很多,但有人能闡明這種荒謬情況的可能來源嗎? 我嘗試重新啟動編輯器(Eric),它可能與調試器有關,但是當我在沒有調試器的情況下運行時,通常會遇到的問題(即一些奇怪的數字)也會發生。
嗯...愚蠢的我。 問題是我將datetime.date子類化,因此d中的對象實際上是該子類。 現在,我需要弄清楚為什么比較仍然產生相等性。
這里的要點是,我認為除了獲得復制外,我還可以使用“挑剔”功能並將變量導出以供其他人檢查。 當我這樣做時,我發現正在使用我的子類。
這是我所做的:
>>> import pickle
>>> pickle dumps([d,d2])
>>> # some stuff showing the library/subclass
對不起,很麻煩-希望您不要為此而拒絕我!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.