2012-09-05 32 views
15

Tôi cố gắng để khởi tạo một đối tượng thời gian như thế này:làm thế nào để khởi tạo thời gian() đối tượng trong python

t = datetime.time(0,0,0) 

nhưng tôi nhận được lỗi này:

descriptor 'time' requires a 'datetime.datetime' object but received a 'int' 

Tôi đã những điều nhập khẩu

import datetime 
from datetime import datetime, date, time 
import time 

Chúng có vẻ hơi dư thừa nên tôi tự hỏi nếu đây là nguyên nhân gây ra sự cố

Tôi cũng đang sử dụng phương pháp strptime và phương pháp kết hợp

earliest = datetime.combine(earliest, t) 
    value = datetime.strptime(value, format) 

Trả lời

22

Bạn có thể tạo ra các đối tượng mà không cần bất kỳ giá trị:

>>> import datetime 
>>> datetime.time() 
datetime.time(0, 0) 

Bạn, tuy nhiên, nhập khẩu các lớp datetime từ các mô-đun , thay thế chính mô-đun đó:

>>> from datetime import datetime 
>>> datetime.time 
<method 'time' of 'datetime.datetime' objects> 

và điều đó có một chữ ký khác nhau :

>>> datetime.time() 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
TypeError: descriptor 'time' of 'datetime.datetime' object needs an argument 
>>> datetime.time(0) 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
TypeError: descriptor 'time' requires a 'datetime.datetime' object but received a 'int' 

Hoặc nhập toàn bộ mô-đun, hoặc nhập khẩu các lớp chứa, nhưng không pha trộn và kết hợp. Dính vào:

import datetime 
import time 

nếu bạn cần cả hai mô-đun.

+0

Trình tạo ba tham số có giá trị như nhau, chỉ dư thừa. http://docs.python.org/library/datetime.html#datetime.time – Ryan

+0

@Martijn ok, vậy tôi nên giữ gìn/thay đổi? – Santiago

+0

@Martijn Tôi đã thử chỉ nhập datetime và thời gian nhưng khi tôi làm điều này bây giờ tôi nhận được lỗi này: 'mô-đun' đối tượng không có thuộc tính 'strptime' đề cập đến dòng: value = datetime.strptime (giá trị, định dạng) – Santiago

5

Thực tế là bạn đang import nhập xung đột datetime từ datetime. Bạn có thể có nghĩa là time, ngoại trừ bạn đang cũngimport nhập xung đột time. Vậy làm thế nào về:

import datetime as dt 

t = dt.time(0, 0, 0) 
Các vấn đề liên quan