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!