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.
== 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é.
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.")
The strings are equal.
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.
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")
p1 and p2 are equal
== opérateur |
__eq__method |
---|---|
== est le comportement par défaut en python lors de la comparaison des valeurs de deux objets. |
La méthode __eq__ doit être explicitement définie dans la classe. |
== peut être utilisé pour comparer des objets de différents types de données. |
La méthode __eq__ ne peut comparer que des objets du même type |
Il n’a pas beaucoup de flexibilité de personnalisation. |
La méthode __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. |
La méthode __eq__ peut être héritée de la classe parent. |
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!