Maison > développement back-end > Tutoriel Python > Comparaisons Python Aucune : devriez-vous utiliser 'is' ou '==' ?

Comparaisons Python Aucune : devriez-vous utiliser 'is' ou '==' ?

Mary-Kate Olsen
Libérer: 2024-11-13 16:38:02
original
1046 Les gens l'ont consulté

Python None Comparisons: Should You Use

Python Aucune comparaison : devriez-vous utiliser "is" ou == ?

En Python, vous pouvez rencontrer un avertissement lorsque vous comparez des variables à Aucun n'utilise ==, alors qu'aucun avertissement n'est émis lors de l'utilisation de is. Les deux syntaxes sont valides, mais l'utilisation de my_var est None est généralement préférée.

Pourquoi "is" est-il préféré pour les vérifications None ?

La principale différence entre is et == réside dans leur objectif. == vérifie l'égalité, tandis que is vérifie l'identité de l'objet. Dans le cas de la comparaison de variables avec None, nous voulons déterminer si la variable est spécifiquement l'objet None, pas seulement un objet qui lui est équivalent.

None est un objet unique en Python, ce qui signifie qu'il n'y a que un exemple de celui-ci. Lorsque vous utilisez my_var is None, vous vérifiez si my_var et None sont le même objet. Cette vérification est plus spécifique et fiable que l'utilisation de my_var == None.

Égalité contre identité

Pour illustrer la différence, considérons une classe personnalisée Negator :

class Negator(object):
    def __eq__(self, other):
        return not other
Copier après la connexion

Si vous créez une instance de Negator et la comparez à None, vous obtiendrez get:

thing = Negator()
print(thing == None)  # True
print(thing is None)  # False
Copier après la connexion

thing == None renvoie True car la classe Negator remplace la méthode eq pour toujours renvoyer True par rapport à toute autre valeur sauf elle-même. Cependant, None renvoie False car les deux objets ne sont pas le même objet.

Conclusion

Pour les vérifications None, il est généralement préférable d'utiliser my_var is None pour assurez-vous que vous recherchez spécifiquement l’objet Aucun. == peut être utilisé lorsque vous souhaitez vérifier l'égalité, mais gardez à l'esprit que cela peut ne pas être fiable lorsqu'il s'agit de classes personnalisées qui remplacent les méthodes de comparaison.

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