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
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
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!