Fondamentalement, je veux faire ceci :
J'ai essayé :
et n’a pas fonctionné.
EDIT : Merci. Aussi qu’en est-il des autres types ? Comme il y avait NoneType que je ne pourrais pas reproduire.
Fondamentalement, je veux faire ceci :
J'ai essayé :
et n’a pas fonctionné.
EDIT : Merci. Aussi qu’en est-il des autres types ? Comme il y avait NoneType que je ne pourrais pas reproduire.
Tout d'abord, éviter tout type de comparaisons. Ils sont très, très rarement nécessaire. Parfois, ils aident à vérifier les types de paramètre dans une fonction, même ce qui est rare. Mauvais type de données génère une exception, et c'est tout ce que vous aurez jamais besoin.
L'ensemble de la base de conversion des fonctions de la carte comme égale à la fonction de type.
type(9) is int
type(2.5) is float
type('x') is str
type(u'x') is unicode
type(2+3j) is complex
Il y a quelques autres cas.
isinstance( 'x', basestring )
isinstance( u'u', basestring )
isinstance( 9, int )
isinstance( 2.5, float )
isinstance( (2+3j), complex )
Aucun, d'ailleurs, jamais besoin de ce genre de vérification de type. None est la seule instance de NoneType. Aucun objet est un Singleton. Il suffit de cocher pour Aucun
variable is None
BTW, ne pas utiliser le ci-dessus en général. Utilisation ordinaire des exceptions et Python naturel de polymorphisme.
Pour d’autres types, consultez le module de types :
P.S. Les forçaient est une mauvaise idée.
Vous pouvez toujours utiliser l' type(x) == type(y)
astuce, où y
est quelque chose avec un type connu.
# check if x is a regular string
type(x) == type('')
# check if x is an integer
type(x) == type(1)
# check if x is a NoneType
type(x) == type(None)
Souvent, il ya de meilleures façons de le faire, en particulier avec toute récente de python. Mais si vous voulez seulement de se rappeler une chose, vous pouvez le rappeler.
Dans ce cas, la meilleure des façons serait:
# check if x is a regular string
type(x) == str
# check if x is either a regular string or a unicode string
type(x) in [str, unicode]
# alternatively:
isinstance(x, basestring)
# check if x is an integer
type(x) == int
# check if x is a NoneType
x is None
Notez que le dernier cas: il n'y a qu'une seule instance d' NoneType
en python, et c'est - None
. Vous verrez NoneType beaucoup d'exceptions (TypeError: 'NoneType' object is unsubscriptable
-- m'arrive tout le temps..) mais vous aurez rarement besoin de s'y référer dans le code.
Enfin, comme fengshaun points de, type de vérification en python n'est pas toujours une bonne idée. C'est plus pythonic d'utiliser seulement la valeur que si c'est le type que vous attendez, et de l'attraper (ou de permettre à la propagation) exceptions qui en résultent.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.