Apa gunanya operator tilde di Python?
Satu hal yang dapat saya pikirkan adalah melakukan sesuatu di kedua sisi string atau daftar, seperti memeriksa apakah string palindromik atau tidak:
def is_palindromic(s):
return all(s[i] == s[~i] for i in range(len(s) / 2))
Adakah penggunaan lain yang baik?
-False==0
) Ini membingungkan, karena Anda berbicara tentang ~
, dan ~False == -1
yang tidak Salah.
__neg__
). Mungkin saya harus terus menggunakan True
, misalnya -True == -1
, yang bukan -2 atau False
atau salah, yang lebih jelas menghubungkannya kembali ke ~True
hasil dan juga bahwa negasi aritmatika dari a bool
berbeda dari negasi logisnya. Saya tidak berusaha untuk mendalam. Saya baru saja menyoroti 3 operasi dan metode khusus yang mendasarinya yang terkadang membingungkan.
~
diimplementasikan oleh metode khusus__invert__
tidak terkait dengannot
operator, yang secara logis meniadakan nilai yang dikembalikan oleh__bool__
(atau__nonzero__
dalam 2.x). Ini juga tidak terkait dengan-
operator negasi unary, diimplementasikan oleh__neg__
. Misalnya~True == -2
, mana yang tidakFalse
atau salah, dan-False == 0
yang masih salah.