2013-04-04 89 views
1

我不明白這是爲什麼失敗了,可有人請解釋:蟒蛇調試簡單DateTime對象

import datetime 

def test(timestamp): 
    xt = datetime(2013, 4,4) 
    dt = datetime.strptime(timestamp, '%d/%m/%Y %H:%M:%S') 
    print (xt,dt) 

test('04/04/2013 08:37:20') 

的錯誤是:

 
Traceback (most recent call last): 
    File "", line 12, in 
    File "", line 5, in test 
TypeError: 'module' object is not callable 

這似乎工作確定與from datetime import datetime代替。我不明白有什麼不同。

謝謝。

回答

4

因爲在datetime模塊中有一個datetime()函數,但是你沒有調用它(你改爲嘗試調用模塊,這就是爲什麼你得到了一個TypeError: 'module' object is not callable)。

import datetime 
def test(timestamp): 
    xt = datetime(2013, 4,4) # Problem is this line. 
    dt = datetime.strptime(timestamp, '%d/%m/%Y %H:%M:%S') 
    print (xt,dt) 

test('04/04/2013 08:37:20') 

要修復線,將其更改爲:

xt = datetime.datetime(2013,4,4) 

原因from datetime import datetime工作是因爲你進口的特定功能,這樣你就不會需要做datetime.datetime()

+0

下面的行也必須更改爲'dt = datetime.datetime.strptime(timestamp,'%d /%m /%Y%H:%M:%S')'爲了運行我。 – StuGrey 2013-04-04 08:23:00

1

datetime既是模塊又是模塊中的類。在你的例子中,你需要datetime.datetime

1

xt = datetime(2013, 4,4) 

應該

xt = datetime.datetime(2013, 4,4) 

這裏,datetime是模塊的名稱。該班的全名是datetime.datetime

1

這裏datetime可以參考模塊或模塊讓你有在類的歧義

import datetime 

def test(timestamp): 
    xt = datetime.datetime(2013, 4,4) 
    dt = datetime.datetime.strptime(timestamp, '%d/%m/%Y %H:%M:%S') 
    print (xt,dt) 

test('04/04/2013 08:37:20') 

給出了下面的輸出:

(datetime.datetime(2013, 4, 4, 0, 0), datetime.datetime(2013, 4, 4, 8, 37, 20))

1

datetime是日期時間模塊datetime.datetime是日期時間類型

import datetime 

def test(timestamp): 
    xt = datetime.datetime(2013, 4,4) 
    dt = datetime.datetime.strptime(timestamp, '%d/%m/%Y %H:%M:%S') 
    print (xt,dt)