Saya mencoba menginisialisasi objek waktu seperti ini:
t = datetime.time(0,0,0)
tetapi saya mendapatkan kesalahan ini:
descriptor 'time' requires a 'datetime.datetime' object but received a 'int'
Saya telah mengimpor hal-hal ini
import datetime
from datetime import datetime, date, time
import time
Mereka tampak sedikit berlebihan, jadi saya bertanya-tanya apakah ini yang menyebabkan masalahnya
Saya juga menggunakan metode strptime dan metode combine
earliest = datetime.combine(earliest, t)
value = datetime.strptime(value, format)
Anda bisa membuat objek tanpa nilai apa pun:
>>> import datetime
>>> datetime.time()
datetime.time(0, 0)
Namun, Anda mengimpor class datetime dari modul, menggantikan modul itu sendiri:
>>> from datetime import datetime
>>> datetime.time
<method 'time' of 'datetime.datetime' objects>
dan yang memiliki tanda tangan berbeda:
>>> 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'
Baik mengimpor seluruh modul, atau mengimpor kelas-kelas yang terkandung, tetapi jangan mencampur dan mencocokkan. Tetaplah berpegang pada:
import datetime
import time
jika anda membutuhkan kedua modul tersebut.
Konstruktor untuk waktu adalah:
class datetime.time(hour[, minute[, second[, microsecond[, tzinfo]]]])
(dari http://docs.python.org/library/datetime.html#time-objects)
Ini bekerja untuk saya:
In [1]: import datetime
In [2]: t = datetime.time(0, 0, 0)
In [3]: print t
00:00:00
Ini adalah fakta bahwa Anda mengimpor mengimpor
datetime
yang bertentangan dari datetime
. Anda mungkin maksudnya adalah waktu
, kecuali Anda juga mengimpor waktu
yang bertentangan. Jadi bagaimana dengan:
import datetime as dt
dan
t = dt.time(0, 0, 0)