Comment verifier qu'une variable est de type DateTime

Le
Richard
import mx.DateTime
import types

a=mx.DateTime.now()

je voudrais faire
if type(a) is types.DateTimeType:

mais DateTimeType n'existe pas dans la lib types (ce qui est surement
normal vu que mx est externe a python)
mais alors on fait comment ?
type(a) renvoit
<type 'DateTime'>

merci

RM
Vos réponses Page 1 / 4
Trier par : date / pertinence
Eric Deveaud
Le #527460
Richard wrote:
import mx.DateTime
import types

a=mx.DateTime.now()

je voudrais faire
if type(a) is types.DateTimeType:

type(a) renvoit
<type 'DateTime'>


if type(a) is DateTime:
#do whatever


mais plutôt que de vérifier le type, pourquoi pas un
try/except autour de ce que tu veux faire

voire demander a ta variable si elle a les bons attributs/metodes pour faire ce
que tu veux lui faire subir

Eric

--
il y a quatre mots dans votre phrase et si vous ne décelez pas les
conséquences rhétoriques de vos propres paroles, c'est facheux et vous
conduira sans doute à d'autres difficultés d'ordre communicationnelles!
-+- PG in
Pierre Quentel
Le #527458
import mx.DateTime
import types

a=mx.DateTime.now()

je voudrais faire
if type(a) is types.DateTimeType:

mais DateTimeType n'existe pas dans la lib types (ce qui est surement
normal vu que mx est externe a python)
mais alors on fait comment ?
type(a) renvoit
<type 'DateTime'>

merci

RM


Dans ce cas on utilise plutôt isinstance:

if isinstance(a,mx.DateTime):
# la suite

Pierre

Richard
Le #527457
import mx.DateTime
import types

a=mx.DateTime.now()

je voudrais faire
if type(a) is types.DateTimeType:

mais DateTimeType n'existe pas dans la lib types (ce qui est surement
normal vu que mx est externe a python)
mais alors on fait comment ?
type(a) renvoit
<type 'DateTime'>

merci

RM


Dans ce cas on utilise plutôt isinstance:

if isinstance(a,mx.DateTime):
# la suite

merci, mais le problème est le même le 2em arg de isinstance() doit être

un type de classe.
Quel est le type de classe de l'objet renvoyé par mx.DateTime.now() ???

je résoud le problème en faisant comme ca:
isinstance(a, type(mx.DateTime.now()))

ca fonctionne mais je ne trouve pas ca satisfaisant, si quelqu'un a le
fin mot de cette histoire... ;-)

merci pour le coup de main.

RM


Richard
Le #527456
Richard wrote:
import mx.DateTime
import types

a=mx.DateTime.now()

je voudrais faire
if type(a) is types.DateTimeType:

type(a) renvoit
<type 'DateTime'>


if type(a) is DateTime:
#do whatever


mais plutôt que de vérifier le type, pourquoi pas un
try/except autour de ce que tu veux faire


parce que c'est pas comme ca que j'ai envie de faire, a mon sens c'est
pas clean, je fais pas du python pour utiliser try except pour
determiner le type d'une varible/objet...

voire demander a ta variable si elle a les bons attributs/metodes pour faire ce
que tu veux lui faire subir


...


Eric




Eric Deveaud
Le #527149
Richard wrote:

mais plutôt que de vérifier le type, pourquoi pas un
try/except autour de ce que tu veux faire


parce que c'est pas comme ca que j'ai envie de faire, a mon sens c'est
pas clean, je fais pas du python pour utiliser try except pour
determiner le type d'une varible/objet...


c'est pourtant une des facons de faire recomandés par l'académie ;-)

jouer sur le fait que le langage n'a pas de typage statique, et dans ce cas
voir du côté du "duck typing"

l'utilisation de hasattr() permet de se passer de type() et/ou isinstance()

Eric

--
Mais ici vous êtes sur Cybercâble, l'endroit où tout est
possible, sauf le normal.
-+- BP in NPC : Chez Cybercâble, c'est la grosse déconne...xion -+-


jean-michel bain-cornu
Le #526609
Bonsoir,
Eric Deveaud wrote:
Richard wrote:


mais plutôt que de vérifier le type, pourquoi pas un
try/except autour de ce que tu veux faire


parce que c'est pas comme ca que j'ai envie de faire, a mon sens c'est
pas clean, je fais pas du python pour utiliser try except pour
determiner le type d'une varible/objet...



c'est pourtant une des facons de faire recomandés par l'académie ;-)
J'avoue que moi aussi ça me gêne. Je ne sais pas pourquoi, mais je

préfère un if bien propre plutôt que l'idée que ça va se planter et
qu'il va falloir récupérer une exception.



Eric Deveaud
Le #526608
jean-michel bain-cornu wrote:
Eric Deveaud wrote:
Richard wrote:


je fais pas du python pour utiliser try except pour determiner le type
d'une varible/objet...


c'est pourtant une des facons de faire recomandés par l'académie ;-)


J'avoue que moi aussi ça me gêne. Je ne sais pas pourquoi, mais je
préfère un if bien propre plutôt que l'idée que ça va se planter et
qu'il va falloir récupérer une exception.


AMHA c'est de vouloir déterminer le type d'une variable qui n'est pas
python(ique) ;-)) "si ça fait coin coin c'est un canard"

Eric


--
S> Je cherche aussi des adresses de lieux contenant des fossiles dans
S> la région parisienne
http://www.senat.fr/
-+- DP in


Encolpe Degoute
Le #526607
Richard wrote:
mais plutôt que de vérifier le type, pourquoi pas un
try/except autour de ce que tu veux faire
parce que c'est pas comme ca que j'ai envie de faire, a mon sens c'est

pas clean, je fais pas du python pour utiliser try except pour
determiner le type d'une varible/objet...


c'est pourtant une des facons de faire recomandés par l'académie ;-)


Non.

jouer sur le fait que le langage n'a pas de typage statique, et dans ce cas
voir du côté du "duck typing"

l'utilisation de hasattr() permet de se passer de type() et/ou isinstance()


Mais cela n'aide pas à comprendre ce que le codeur cherchait à faire.

--
Encolpe DEGOUTE
http://encolpe.degoute.free.fr/
Logiciels libres, hockey sur glace et autres activités cérébrales



Eric Deveaud
Le #526606
Encolpe Degoute wrote:
Richard wrote:
je fais pas du python pour utiliser try except pour
determiner le type d'une varible/objet...


c'est pourtant une des facons de faire recomandés par l'académie ;-)


Non.


arguments ??

Eric

--
VR> y'en a vraiment qui manquent pas d'air.
Alors là, je m'insurge !
Il ne manque certainement pas d'air, comme toutes les baudruches.
-+- RG in


Encolpe Degoute
Le #526605
Encolpe Degoute wrote:
Richard wrote:
je fais pas du python pour utiliser try except pour
determiner le type d'une varible/objet...
c'est pourtant une des facons de faire recomandés par l'académie ;-)



Non.


arguments ??


Quels sont les votre ?
Quelle est cette académie ?

Et non, je ne donne pas mon argumentaire avant que vous ayez étayé votre réponse.
--
Encolpe DEGOUTE
http://encolpe.degoute.free.fr/
Logiciels libres, hockey sur glace et autres activités cérébrales




Publicité
Poster une réponse
Anonyme