Maison  >  Article  >  développement back-end  >  Les opérateurs Python peuvent-ils être redéfinis ?

Les opérateurs Python peuvent-ils être redéfinis ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-10-22 06:37:02346parcourir

Can Python Operators Be Redefined?

Surcharge d'opérateurs en Python

En Python, la définition d'opérateurs personnalisés n'est pas directement prise en charge. Cependant, une astucieuse solution de contournement permet de modifier les opérateurs existants, donnant l'illusion d'en créer de nouveaux. Cette technique "infixe" permet de définir des opérateurs qui fonctionnent entre deux expressions, comme dans l'exemple suivant :

<code class="python"># Simple multiplication operator
x = Infix(lambda x, y: x * y)
print(2 |x| 4)  # Output: 8</code>

Dans cet exemple, le |x| L'opérateur se comporte comme l'opérateur de multiplication (*). De même, des opérateurs de comparaisons personnalisées peuvent être définis :

<code class="python"># Class checking operator
isa = Infix(lambda x, y: x.__class__ == y.__class__)
print([1, 2, 3] |isa| [])  # Output: True
print([1, 2, 3] <<isa>> [])  # Output: True</code>

Ici, le |isa| L’opérateur vérifie si les deux expressions appartiennent à la même classe. Cette solution de contournement étend efficacement les fonctionnalités des opérateurs Python, offrant une flexibilité dans la définition d'opérations personnalisées sans avoir besoin d'une nouvelle syntaxe.

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!

Déclaration:
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