все Python 3operatorфункция
operator.invert
битовые
Побитовая инверсия ~a (эквивалентно −a−1 для int).
Синтаксис
operator.invert(a)
Для int результат всегда -a - 1, потому что в Python у целых нет фиксированной ширины: ~5 даёт -6, а не 250, как в восьмибитном типе. Для маски нужной ширины добавьте & 0xFF. С bool не применяйте: ~True равно -2, а не False; с Python 3.12 это предупреждение DeprecationWarning, удаление запланировано на 3.16. Для логического отрицания есть not.
Примеры
import operator
print(operator.invert(0)) # → -1
print(operator.invert(5) == ~5) # → True
print(operator.invert(5) == -5 - 1) # → True
print(list(map(operator.invert, [1, 2, 3]))) # → [-2, -3, -4]
print(operator.invert(True)) # → -2 — с 3.12 DeprecationWarning: ~ над bool устарел
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности