Maison >développement back-end >Tutoriel Python >En Python, quand puis-je compter sur l'opérateur is pour les tests d'identité ?

En Python, quand puis-je compter sur l'opérateur is pour les tests d'identité ?

王林
王林avant
2023-09-12 20:29:061154parcourir

En Python, quand puis-je compter sur lopérateur is pour les tests didentité ?

Exemple

is opérateur est un opérateur d’identité en Python. Il est utilisé pour tester l'identité du sujet. Regardons un exemple −

x = ["Paul","Mark"]
y = ["Paul","Mark"]
z = x

# Python IS operator
print(x is z)

Sortie

True

Supposons que nous considérions un autre exemple où le test a est b est équivalent à -

id(a) == id(b)

La propriété clé du test d'identité est que l'objet est toujours identique à lui-même, a is a renvoie toujours True. Les tests d'identité sont généralement plus rapides que les tests d'égalité. Contrairement aux tests d'égalité, les tests d'identité sont garantis de renvoyer une valeur booléenne True ou False.

Cependant, les tests d'identité ne peuvent remplacer les tests d'égalité que si l'identité de l'objet est assurée. Il existe généralement trois situations dans lesquelles l'identité peut être garantie :

  • L'affectation crée un nouveau nom mais ne modifie pas l'identité de l'objet.

    Après avoir attribué nouveau = ancien, il est garanti que nouveau est ancien.

  • Mettre un objet dans un conteneur qui stocke une référence à l'objet ne change pas l'identité de l'objet.

    Après l'affectation de la liste, s[0] = x, garantit que s[0] vaut x.

  • Si un objet est un singleton, cela signifie qu'une seule instance de l'objet peut exister. Après avoir attribué a = None et b = None, vous pouvez vous assurer que a et b sont égaux car None est un singleton.

N'oubliez pas que les tests d'identité ne doivent pas être utilisés pour vérifier des constantes telles que int et str qui ne sont pas garanties comme étant des singletons. Dans l'exemple ci-dessous, nous obtenons uniquement False -

Test d'identité sur int

se traduit par :

Test d'identité sur type int

Exemple

Testons sur des éléments entiers -

a = 1000
b = 500
c = b + 500
print(a is c)

Sortie

False

Test d'identité de chaîne

Exemple

Un exemple de test d'identité de chaîne −

a = 'Amit'
b = 'Am'
c = b + 'it'
print(a is c)

Sortie

False

Test d'identité de type variable

Exemple

En Python, les listes sont mutables. Les nouvelles instances de conteneurs mutables ne sont jamais les mêmes ; le test d'identité renvoie donc False -

.
a = [10, 20, 30]
b = [10, 20, 30]
print(a is b)

Sortie

False

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer