2010-10-05 13 views
5

¿Cuál es el tipo equivalente en el módulo de tipos para datetime? Ejemplo:sobre python datetime tipo

import datetime 
import types 
t=datetime.datetime.now() 
if type(t)==types.xxxxxx: 
    do sth 

No encontré el tipo de módulo relevante en tipos para el tipo de fecha y hora; podría alguien ayudarme?

Respuesta

14
>>> type(t) 
<type 'datetime.datetime'> 
>>> type(t) is datetime.datetime 
True 

¿Esa es la información que está buscando? No creo que pueda encontrar el tipo relevante dentro del módulo types ya que datetime.datetime no es un tipo incorporado.

Editar para añadir: Otra nota, ya que esto es evidentemente lo que estabas buscando (no estaba del todo seguro cuando respondí por primera vez) - la verificación de tipos generalmente no es necesaria en Python, y puede ser un indicador de mal diseño . Te recomiendo que revises tu código y veas si hay una manera de hacer lo que sea que necesites hacer sin tener que usar la verificación de tipos. (? canónica Pythonic)

Además, la típica manera de hacerlo es con:

>>> isinstance(t, datetime.datetime) 
True 

Ver también: Differences between isinstance() and type() in python, pero la razón principal es que isinstance() admite la herencia mientras que type() requiere que tanto los objetos son del mismo tipo exacto (es decir, un tipo derivado evaluará a false en comparación con su tipo base utilizando este último).

+0

En este caso, sería preferible decir 'tipo (t) es datetime.datetime' vs. using' == '. – snapshoe

+0

@ ma3204: Sí, creo que tienes razón. Cambiaré eso. – eldarerathis

+2

sería preferible utilizar 'isinstance' – SilentGhost

Cuestiones relacionadas