簡體   English   中英

python中datetime.date的異常行為

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM