Maison > développement back-end > Tutoriel Python > Comment Python 2 compare-t-il des objets de différents types ?

Comment Python 2 compare-t-il des objets de différents types ?

Mary-Kate Olsen
Libérer: 2024-12-17 04:48:24
original
548 Les gens l'ont consulté

How Does Python 2 Compare Objects of Different Types?

Comment fonctionne la comparaison d'objets dans Python 2

Le comportement de Python 2 lors de la comparaison d'objets de différents types peut prêter à confusion, mais il est basé sur les détails d'implémentation fournis par la spécification du langage.

Comportement spécifique à l'implémentation

Lors de la comparaison d'objets de différents types, Python 2 utilise l'ordre suivant :

  • Les numériques en premier :Les types numériques (entiers, flottants) ont priorité sur les non-numériques.
  • Ordre lexicographique des chaînes : Les chaînes sont comparées lexicographiquement.
  • Type Ordre des noms pour les non-numériques : Les objets du même type mais sans méthode de comparaison appropriée sont classés par leurs noms de type, triés par ordre alphabétique.

Exemples

Pour illustrer :

print "100" < "2"      # True (lexicographic)
print "5" > "9"        # False (lexicographic)

print "100" < 2        # False (numeric first)
print 100 < "2"        # True (numeric first, lexicographic second)

print 5 > "9"          # False (lexicographic)
print "5" > 9          # True (numeric first, lexicographic second)

print [] > float('inf') # True (non-numeric ordering)
print () > []          # True (non-numeric ordering)
Copier après la connexion

Détails d'implémentation

Ce comportement est mandaté par l'implémentation CPython de Python 2. La spécification du langage indique que les objets de différents types sont ordonnés « arbitrairement mais systématiquement », laissant les détails à l'implémentation.

Différences entre les versions et les implémentations

Dans Python 3, les comparaisons entre les entiers et les chaînes génèrent une erreur. D'autres implémentations de Python peuvent également avoir un comportement légèrement différent.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal