2015-07-09 28 views
1

根據文檔字符串,datetime.todaysame as self.__class__.fromtimestamp(time.time())。雖然這一切都有道理,但我很好奇爲什麼它是self.__class__.fromtimestamp而不是cls.fromtimestamp。它實際上是作爲一個普通的classmethod實現的,但是它們在文檔字符串中是非常明確的?是因爲datetime是舊的?它是一個C互操作的東西嗎?self.__class__.foo vs cls.foo in python(的日期時間模塊)

ETA:遺憾的是unclear-- cls一般用於代替self在classmethods:

@classmethod 
def foo(cls, *args, **kwargs): 
    ... 
+0

在你的例子中'cls'是什麼? –

+0

我猜'cls'應該是'self'? – WolframH

+0

'cls'是通常給予'@ classmethod'的隱式第一個參數的名稱。 – Sam

回答

0

datetime.today()是適當的(在Python 2本機C,純Python在Python 3)class method,所以它甚至沒有通過self來指代。

即使從_datetimemodule.c的早期開始,它就一直如此,所以我不知道docstring來自哪裏。然而,文檔字符串似乎已經到位,即使從模塊的初始提交(至少遠遠超出git歷史記錄)開始。這可能意味着在某些時候是對象方法,並且在更改爲類方法之後,文檔字符串從未更新過。

但是,如上所述,我找不到任何證據表明today()從來不是一種類方法。

此外,library docsPython 3)沒有提及self

返回當前本地日期。這相當於date.fromtimestamp(time.time())

+0

這回答這個問題? –

+0

@ Two-BitAlchemist \t「不用擔心,它是C-town」,就我而言,這是一個非常滿意的答案:) – swizzard

+0

呃,經過一番挖掘,甚至連git日誌不會提供任何進一步的信息。文檔字符串就像它現在在最初的提交中(日期時間被認爲是從CVS回購中拉出來的),甚至在那個時候,'today()'已經是一個類方法。 – dhke