Le programme Python fait la distinction entre l'opérateur string == et la méthode __eq__()

WBOY
Libérer: 2023-09-22 15:13:02
avant
1034 Les gens l'ont consulté

Le programme Python fait la distinction entre lopérateur string == et la méthode __eq__()

En Python, l'opérateur de comparaison (==) et la méthode equals() sont utilisés de différentes manières lorsque vous travaillez avec des chaînes. Pour différencier l'opérateur == et la méthode égale en Python, nous devons les utiliser avec des comparaisons de chaînes. La comparaison de chaînes est largement répandue lorsque nous utilisons des chaînes dans l'analyse de données et l'apprentissage automatique. Dans cet article, nous apprendrons comment faire la différence entre l'opérateur == et la méthode equals() lorsqu'ils sont utilisés avec des chaînes.

== opérateur

en Python

== est un opérateur de comparaison utilisé pour comparer deux valeurs de chaîne. Renvoie True lorsque les valeurs de chaîne sont égales et False lorsque les valeurs de chaîne ne sont pas égales. Il renvoie vrai même si les chaînes sont stockées dans des emplacements mémoire différents. Il compare uniquement les valeurs de chaîne pour vérifier l'égalité.

Exemple

Dans l'exemple ci-dessous, nous définissons deux valeurs de chaîne str1 et str2 et les initialisons avec la même valeur de chaîne. Lorsque nous comparons les chaînes str1 et str2 à l'aide de l'opérateur ==, cela renvoie vrai car les valeurs des deux chaînes sont égales. p>

str1 = "Hello World"
str2 = "Hello World"
if str1 == str2:
   print("The strings are equal.")
else:
   print("The strings are not equal.")
Copier après la connexion

Sortie

The strings are equal.
Copier après la connexion

La méthode __eq__() en Python

La méthode __eq__ en Python est utilisée pour définir comment comparer les objets d'une classe pour l'égalité. La méthode __eq__ prend deux paramètres : self (l'objet à gauche de l'opérateur ==) et other (l'objet à droite de l'opérateur ==). La méthode __eq__ renvoie toujours une valeur booléenne (Vrai ou Faux). S'il renvoie autre chose qu'une valeur booléenne, une TypeError en résultera.

Exemple

Dans l'exemple ci-dessous, nous créons une classe appelée Person qui possède deux propriétés, name et age. Ensuite, nous définissons la méthode __eq__() dans la classe pour comparer les propriétés name et age de l'objet person. Enfin, créez deux instances de la classe person, p1 et p2, et comparez-les à l'aide de l'opérateur ==.

class Person:
   def __init__(self, name, age):
      self.name = name
      self.age = age

   def __eq__(self, other):
      if isinstance(other, Person):
         return self.name == other.name and self.age == other.age
      return False

p1 = Person("John", 30)
p2 = Person("John", 30)
if p1 == p2:
   print("p1 and p2 are equal")
Copier après la connexion

Sortie

p1 and p2 are equal
Copier après la connexion
Différence entre les méthodes

== et __eq__

La méthode L'opérateur La méthode La méthode La méthode

== opérateur

__eq__method

== est le comportement par défaut en python lors de la comparaison des valeurs de deux objets.

__eq__ doit être explicitement définie dans la classe.

== peut être utilisé pour comparer des objets de différents types de données.

__eq__ ne peut comparer que des objets du même type

Il n’a pas beaucoup de flexibilité de personnalisation.

__eq__ peut être personnalisée pour des types spécifiques de comparaisons.

Il ne peut pas être hérité et doit être explicitement défini pour chaque classe.

__eq__ peut être héritée de la classe parent.

Conclusion

Dans cet article, nous avons expliqué comment fonctionnent l'opérateur == et la méthode __eq__ en Python. L'opérateur == compare les chaînes sans regarder l'emplacement mémoire de la chaîne. La méthode __eq__ est définie dans la classe et est utilisée pour comparer deux objets. L'article traite également de la différence entre l'opérateur == et la méthode __eq__.

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