Какая польза от оператора тильды в Python?
Одна вещь, о которой я могу подумать, это сделать что-то с обеих сторон строки или списка, например, проверить, является ли строка палиндромной или нет:
def is_palindromic(s):
return all(s[i] == s[~i] for i in range(len(s) / 2))
Любое другое хорошее использование?
-False==0) Это сбивает с толку, так как вы говорили о ~, и ~False == -1это не Ложь.
__neg__). Вероятно, мне следовало бы продолжать использовать True, например -True == -1, значение «-2» или « Falseложь», которое более четко связывает его с ~Trueрезультатом, а также то, что арифметическое отрицание a boolотличается от его логического отрицания. Я не пытался быть глубоким. Я просто выделил 3 операции и основные специальные методы, которые иногда путают.
~реализованный специальным методом,__invert__не связан сnotоператором, который логически сводит на нет значение, возвращаемое__bool__(или__nonzero__в 2.x). Это также не связано с-унарным оператором отрицания, реализованным__neg__. Например~True == -2, который не являетсяFalseили ложным, и-False == 0, который все еще ложным.