create - como inicializar el objeto time() en python
timedelta python example (3)
Estoy tratando de inicializar un objeto de tiempo como este:
t = datetime.time(0,0,0)
pero estoy recibiendo este error:
descriptor ''time'' requires a ''datetime.datetime'' object but received a ''int''
Tengo estas cosas importadas
import datetime
from datetime import datetime, date, time
import time
Parecen un poco redundantes, así que me pregunto si esto es lo que está causando el problema.
También estoy usando el método strptime y el método de combinación
earliest = datetime.combine(earliest, t)
value = datetime.strptime(value, format)
El constructor para el tiempo es:
class datetime.time(hour[, minute[, second[, microsecond[, tzinfo]]]])
(de http://docs.python.org/library/datetime.html#time-objects )
Esto funciona para mí:
In [1]: import datetime
In [2]: t = datetime.time(0, 0, 0)
In [3]: print t
00:00:00
Es el hecho de que está import
un datetime
conflictivo de datetime
. Probablemente quiso decir time
, excepto que también está import
un time
conflictivo. Entonces, ¿qué hay de
import datetime as dt
y
t = dt.time(0, 0, 0)
Puedes crear el objeto sin ningún valor:
>>> import datetime
>>> datetime.time()
datetime.time(0, 0)
Sin embargo, usted importó la clase datetime del módulo, reemplazando el módulo mismo:
>>> from datetime import datetime
>>> datetime.time
<method ''time'' of ''datetime.datetime'' objects>
y que tiene una firma diferente :
>>> 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''
Importe el módulo completo o importe las clases contenidas, pero no mezcle y combine. Atenerse a:
import datetime
import time
Si necesita ambos módulos.