Maison >développement back-end >Tutoriel Python >Que fait l'opérateur Tilde (~) en Python ?

Que fait l'opérateur Tilde (~) en Python ?

Linda Hamilton
Linda Hamiltonoriginal
2024-11-30 11:09:10650parcourir

What Does the Tilde (~) Operator Do in Python?

Comprendre l'opérateur Python Tilde

L'opérateur tilde (~) en Python est un opérateur unaire utilisé pour l'inverse ou la négation au niveau du bit. Il opère sur des entiers et renvoie le complément des bits d'entrée.

Utilisation pour les entiers

Lorsqu'il est appliqué à des entiers, l'opérateur tilde retourne tous les bits des deux- représentation complémentaire de l’entier. Le résultat est à nouveau interprété comme un entier complémentaire à deux. Cela rend ~x équivalent à (-x) - 1.

Par exemple :

>>> ~5
-6

Utilisation de l'inversion pour les classes personnalisées

Le réifié La forme de l'opérateur ~ est Operator.invert. Les classes peuvent prendre en charge cet opérateur en implémentant une méthode __invert__(self).

Par exemple :

import operator

class Foo:
    def __invert__(self):
        print('invert')

x = Foo()
operator.invert(x)  # Prints 'invert'
~x  # Also prints 'invert'

Cet opérateur peut être utile pour les classes où il est logique d'avoir un "complément" ou "inverse" d'une instance qui est également une instance de la même classe.

Supplémentaire Utilisations

Au-delà de l'inversion d'entier, l'opérateur tilde est parfois utilisé en combinaison avec le découpage de chaîne pour effectuer des tâches des deux côtés d'une chaîne ou d'une liste. Par exemple, il peut être utilisé pour vérifier si une chaîne est palindromique :

def is_palindromic(s):
    return all(s[i] == s[~i] for i in range(len(s) // 2))

Dans l'ensemble, l'opérateur tilde est un outil polyvalent qui peut être utilisé à la fois pour l'inversion au niveau du bit et pour l'inversion de classe personnalisée en Python.

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