Яке використання оператора tilde в 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
яке все ще є помилковим.