Comment verifier qu'une variable est de type DateTime
38 réponses
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'>
mais plutôt que de vérifier le type, pourquoi pas un try/except autour de ce que tu veux faire
En plus de ce qui as déjà été dit, il me semble que le test est plus précis que l'exception. On regarde vraiment si il s'agit d'une date, alors que l'exception est déclenchée au mieux sur une erreur de type, et au pire sur n'importe quoi, ce qui dans les deux cas peut avoir des effets de bord dévastateurs. A+ jm
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
En plus de ce qui as déjà été dit, il me semble que le test est plus
précis que l'exception. On regarde vraiment si il s'agit d'une date,
alors que l'exception est déclenchée au mieux sur une erreur de type, et
au pire sur n'importe quoi, ce qui dans les deux cas peut avoir des
effets de bord dévastateurs.
A+
jm
mais plutôt que de vérifier le type, pourquoi pas un try/except autour de ce que tu veux faire
En plus de ce qui as déjà été dit, il me semble que le test est plus précis que l'exception. On regarde vraiment si il s'agit d'une date, alors que l'exception est déclenchée au mieux sur une erreur de type, et au pire sur n'importe quoi, ce qui dans les deux cas peut avoir des effets de bord dévastateurs. A+ jm
stephane
if type(a) is DateTime: #do whatever
mais plutôt que de vérifier le type, pourquoi pas un try/except au tour de ce que tu veux faire
En plus de ce qui as déjà été dit, il me semble que le test est plus précis que l'exception. On regarde vraiment si il s'agit d'une date, alors que l'exception est déclenchée au mieux sur une erreur de typ e, et au pire sur n'importe quoi, ce qui dans les deux cas peut avoir des effets de bord dévastateurs.
Test ou exception sont sémentiquement liées. L'usage de l'un ou de l'autre n'est qu'une question de contexte. Ce dernier étant plutôt subjectif puisque interprété par l'utilisateur (programmeur). A suivr e ce fil il est assez clair, imha, que toute réponse est avant tout empirique ...d'où les tautologies qui s'en suivent.
Cordialement,
Stéphane.
if type(a) is DateTime:
#do whatever
mais plutôt que de vérifier le type, pourquoi pas un try/except au tour
de ce que tu veux faire
En plus de ce qui as déjà été dit, il me semble que le test est plus
précis que l'exception. On regarde vraiment si il s'agit d'une date,
alors que l'exception est déclenchée au mieux sur une erreur de typ e, et
au pire sur n'importe quoi, ce qui dans les deux cas peut avoir des
effets de bord dévastateurs.
Test ou exception sont sémentiquement liées. L'usage de l'un ou de
l'autre n'est qu'une question de contexte. Ce dernier étant plutôt
subjectif puisque interprété par l'utilisateur (programmeur). A suivr e
ce fil il est assez clair, imha, que toute réponse est avant tout
empirique ...d'où les tautologies qui s'en suivent.
mais plutôt que de vérifier le type, pourquoi pas un try/except au tour de ce que tu veux faire
En plus de ce qui as déjà été dit, il me semble que le test est plus précis que l'exception. On regarde vraiment si il s'agit d'une date, alors que l'exception est déclenchée au mieux sur une erreur de typ e, et au pire sur n'importe quoi, ce qui dans les deux cas peut avoir des effets de bord dévastateurs.
Test ou exception sont sémentiquement liées. L'usage de l'un ou de l'autre n'est qu'une question de contexte. Ce dernier étant plutôt subjectif puisque interprété par l'utilisateur (programmeur). A suivr e ce fil il est assez clair, imha, que toute réponse est avant tout empirique ...d'où les tautologies qui s'en suivent.
Cordialement,
Stéphane.
Eric Deveaud
jean-michel bain-cornu wrote:
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
En plus de ce qui as déjà été dit, il me semble que le test est plus précis que l'exception. On regarde vraiment si il s'agit d'une date, alors que l'exception est déclenchée au mieux sur une erreur de type, et au pire sur n'importe quoi, ce qui dans les deux cas peut avoir des effets de bord dévastateurs.
poser correctement le type de l'exception, non ?? ;-)
Eric
-- Bonjour je sais qu il existe un prog pour faire des cartes bancaires puis je l avoir par mail pas pour en fabriquer mais par curiosite merci a tous -+- LM In GNU : La cléf pour fabriquer un neuneu enfin dévoilée -+-
jean-michel bain-cornu wrote:
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
En plus de ce qui as déjà été dit, il me semble que le test est plus
précis que l'exception. On regarde vraiment si il s'agit d'une date,
alors que l'exception est déclenchée au mieux sur une erreur de type, et
au pire sur n'importe quoi, ce qui dans les deux cas peut avoir des
effets de bord dévastateurs.
poser correctement le type de l'exception, non ?? ;-)
Eric
--
Bonjour je sais qu il existe un prog pour faire des cartes bancaires
puis je l avoir par mail pas pour en fabriquer mais par curiosite
merci a tous
-+- LM In GNU : La cléf pour fabriquer un neuneu enfin dévoilée -+-
mais plutôt que de vérifier le type, pourquoi pas un try/except autour de ce que tu veux faire
En plus de ce qui as déjà été dit, il me semble que le test est plus précis que l'exception. On regarde vraiment si il s'agit d'une date, alors que l'exception est déclenchée au mieux sur une erreur de type, et au pire sur n'importe quoi, ce qui dans les deux cas peut avoir des effets de bord dévastateurs.
poser correctement le type de l'exception, non ?? ;-)
Eric
-- Bonjour je sais qu il existe un prog pour faire des cartes bancaires puis je l avoir par mail pas pour en fabriquer mais par curiosite merci a tous -+- LM In GNU : La cléf pour fabriquer un neuneu enfin dévoilée -+-
Eric Jacoboni
Christophe writes:
StopIteration n'est pas ici juste un truc interne au protocole d'iteration. C'est un point important à connaitre quand on pousse un peu les iterateurs. Que ce soit pour consomer des valeures de façon non conventionelle ou pour créer de toute pièce un iterateur qui devrai bien un jour ou l'autre annoncer au monde qu'il n'a plus de valeurs à renvoyer :)
Voilà... "quand on pousse un peu" et "non conventionnelle", ce qui ne représente donc pas la plupart des cas.
Je n'ai rien contre les exceptions, hein (je les utilisais déjà en 83 avec Ada, donc ce n'est pas une découverte). Je suis contre leur utilisation systématique, nuance.
-- Eric Jacoboni, ne il y a 1448895161 secondes
Christophe <chris.cavalaria@free.fr> writes:
StopIteration n'est pas ici juste un truc interne au protocole
d'iteration. C'est un point important à connaitre quand on pousse un
peu les iterateurs. Que ce soit pour consomer des valeures de façon
non conventionelle ou pour créer de toute pièce un iterateur qui
devrai bien un jour ou l'autre annoncer au monde qu'il n'a plus de
valeurs à renvoyer :)
Voilà... "quand on pousse un peu" et "non conventionnelle", ce qui
ne représente donc pas la plupart des cas.
Je n'ai rien contre les exceptions, hein (je les utilisais déjà en 83
avec Ada, donc ce n'est pas une découverte). Je suis contre leur
utilisation systématique, nuance.
StopIteration n'est pas ici juste un truc interne au protocole d'iteration. C'est un point important à connaitre quand on pousse un peu les iterateurs. Que ce soit pour consomer des valeures de façon non conventionelle ou pour créer de toute pièce un iterateur qui devrai bien un jour ou l'autre annoncer au monde qu'il n'a plus de valeurs à renvoyer :)
Voilà... "quand on pousse un peu" et "non conventionnelle", ce qui ne représente donc pas la plupart des cas.
Je n'ai rien contre les exceptions, hein (je les utilisais déjà en 83 avec Ada, donc ce n'est pas une découverte). Je suis contre leur utilisation systématique, nuance.
if "toto" in a: return a["toto"] else: return None
C'est plus optimisé comme code :)
Chacun son truc, hein... Vous devriez relire Hoare et Knuth :)
-- Eric Jacoboni, ne il y a 1448896358 secondes
Eric Jacoboni
Christophe writes:
Chacun son truc, hein... Vous devriez relire Hoare et Knuth :)
Jamais lu, tu peux détailler ? :p
En gros, ça dit que, la majeure partie du temps, une optimisation prématurée est la source de tous les maux (premature optimization is the root of all evil). C'est comme le "Goto considered harmful" de Dijkstra, ça fait partie des dictons de base ;)
Tu trouveras une tonne de pages web là-dessus en recherchant "premature optimization" sur Google. -- Eric Jacoboni, ne il y a 1448900839 secondes
Christophe <chris.cavalaria@free.fr> writes:
Chacun son truc, hein... Vous devriez relire Hoare et Knuth :)
Jamais lu, tu peux détailler ? :p
En gros, ça dit que, la majeure partie du temps, une optimisation
prématurée est la source de tous les maux (premature optimization is
the root of all evil). C'est comme le "Goto considered harmful" de
Dijkstra, ça fait partie des dictons de base ;)
Tu trouveras une tonne de pages web là-dessus en recherchant
"premature optimization" sur Google.
--
Eric Jacoboni, ne il y a 1448900839 secondes
Chacun son truc, hein... Vous devriez relire Hoare et Knuth :)
Jamais lu, tu peux détailler ? :p
En gros, ça dit que, la majeure partie du temps, une optimisation prématurée est la source de tous les maux (premature optimization is the root of all evil). C'est comme le "Goto considered harmful" de Dijkstra, ça fait partie des dictons de base ;)
Tu trouveras une tonne de pages web là-dessus en recherchant "premature optimization" sur Google. -- Eric Jacoboni, ne il y a 1448900839 secondes
jean-michel bain-cornu
Eric Deveaud wrote:
jean-michel bain-cornu wrote:
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
En plus de ce qui as déjà été dit, il me semble que le test est plus précis que l'exception. On regarde vraiment si il s'agit d'une date, alors que l'exception est déclenchée au mieux sur une erreur de type, et au pire sur n'importe quoi, ce qui dans les deux cas peut avoir des effets de bord dévastateurs.
poser correctement le type de l'exception, non ?? ;-)
Eric
D'accord, on a bien : TypeError. Mais si je programme :
si le type de ma variable est DateTime: alors j'agis C'est plus précis que de dire : j'essai un traitement: tout va bien si j'ai une erreur de type je fais autre chose Parce que l'erreur de type peut venir d'autre chose qu'une variable n'étant pas une DateTime, ce qui peut être piégeant. Et ne connais pas d'exception déclenchée *précisément* sur un type non DateTime. Bon d'accord je chipote. Mais au point où on en est... A+ jm
Eric Deveaud wrote:
jean-michel bain-cornu wrote:
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
En plus de ce qui as déjà été dit, il me semble que le test est plus
précis que l'exception. On regarde vraiment si il s'agit d'une date,
alors que l'exception est déclenchée au mieux sur une erreur de type, et
au pire sur n'importe quoi, ce qui dans les deux cas peut avoir des
effets de bord dévastateurs.
poser correctement le type de l'exception, non ?? ;-)
Eric
D'accord, on a bien : TypeError. Mais si je programme :
si le type de ma variable est DateTime:
alors j'agis
C'est plus précis que de dire :
j'essai un traitement:
tout va bien
si j'ai une erreur de type
je fais autre chose
Parce que l'erreur de type peut venir d'autre chose qu'une variable
n'étant pas une DateTime, ce qui peut être piégeant. Et ne connais pas
d'exception déclenchée *précisément* sur un type non DateTime.
Bon d'accord je chipote. Mais au point où on en est...
A+
jm
mais plutôt que de vérifier le type, pourquoi pas un try/except autour de ce que tu veux faire
En plus de ce qui as déjà été dit, il me semble que le test est plus précis que l'exception. On regarde vraiment si il s'agit d'une date, alors que l'exception est déclenchée au mieux sur une erreur de type, et au pire sur n'importe quoi, ce qui dans les deux cas peut avoir des effets de bord dévastateurs.
poser correctement le type de l'exception, non ?? ;-)
Eric
D'accord, on a bien : TypeError. Mais si je programme :
si le type de ma variable est DateTime: alors j'agis C'est plus précis que de dire : j'essai un traitement: tout va bien si j'ai une erreur de type je fais autre chose Parce que l'erreur de type peut venir d'autre chose qu'une variable n'étant pas une DateTime, ce qui peut être piégeant. Et ne connais pas d'exception déclenchée *précisément* sur un type non DateTime. Bon d'accord je chipote. Mais au point où on en est... A+ jm
Eric Jacoboni
jean-michel bain-cornu writes:
D'accord, on a bien : TypeError. Mais si je programme : si le type de ma variable est DateTime: alors j'agis
Moi, je dirai plutôt :
si ma variable se comporte comme un DateTime: alors j'agis
Parce que je pourrai avoir envie d'utiliser éventuellement un DateHeure fait maison, qui ne soit pas une classe fille de DateTime mais qui supporte ses fonctionnalités (l'histoire du truc qui fait couac et qui marche comme un canard, quoi...).
-- Eric Jacoboni, ne il y a 1448924841 secondes
jean-michel bain-cornu <jmbc@nospam.fr> writes:
D'accord, on a bien : TypeError. Mais si je programme :
si le type de ma variable est DateTime:
alors j'agis
Moi, je dirai plutôt :
si ma variable se comporte comme un DateTime:
alors j'agis
Parce que je pourrai avoir envie d'utiliser éventuellement un
DateHeure fait maison, qui ne soit pas une classe fille de DateTime
mais qui supporte ses fonctionnalités (l'histoire du truc qui fait
couac et qui marche comme un canard, quoi...).
D'accord, on a bien : TypeError. Mais si je programme : si le type de ma variable est DateTime: alors j'agis
Moi, je dirai plutôt :
si ma variable se comporte comme un DateTime: alors j'agis
Parce que je pourrai avoir envie d'utiliser éventuellement un DateHeure fait maison, qui ne soit pas une classe fille de DateTime mais qui supporte ses fonctionnalités (l'histoire du truc qui fait couac et qui marche comme un canard, quoi...).