Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Comment verifier qu'une variable est de type DateTime

38 réponses
Avatar
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

10 réponses

1 2 3 4
Avatar
Eric Deveaud
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 <http://www.le-gnu.net> : C'est cela, oui. -+-

Avatar
Pierre Quentel
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

Avatar
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


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


Avatar
Richard
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




Avatar
Eric Deveaud
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 -+-


Avatar
jean-michel bain-cornu
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.



Avatar
Eric Deveaud
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 <http://www.le-gnu.net> : La dianurette et les fossiles -+-



Avatar
Encolpe Degoute
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



Avatar
Eric Deveaud
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 <http://www.le-gnu.net> -+- Il est pas beau druche ? -+-



Avatar
Encolpe Degoute
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




1 2 3 4