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é ?

王林
Libérer: 2023-09-12 20:29:06
avant
1156 Les gens l'ont consulté

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)
Copier après la connexion

Sortie

True
Copier après la connexion

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

id(a) == id(b)
Copier après la connexion

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)
Copier après la connexion

Sortie

False
Copier après la connexion
Copier après la connexion
Copier après la connexion

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)
Copier après la connexion

Sortie

False
Copier après la connexion
Copier après la connexion
Copier après la connexion

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)
Copier après la connexion

Sortie

False
Copier après la connexion
Copier après la connexion
Copier après la connexion

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!

Étiquettes associées:
source:tutorialspoint.com
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal