cara menginisialisasi objek time() dalam python

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)
Larutan

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

dan yang memiliki tanda tangan berbeda:

>>> datetime.time()
Traceback (most recent call last):
  File "", line 1, in 
TypeError: descriptor 'time' of 'datetime.datetime' object needs an argument
>>> datetime.time(0)
Traceback (most recent call last):
  File "", line 1, in 
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.

Komentar (4)

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
Komentar (0)

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)
Komentar (0)