私はこの質問を介してPythonでビット単位の単項補数演算を発見し、実際のアプリケーションを考え出そうとしていました. . 質問に示されている例は で失敗し、提供されたリンクはかなり威圧的です。使用中を確認するためのいくつかのいじりは次のとおりです。__invert__
TypeError
~
from bitstring import BitArray
x = 7
print(~x)
# -8
print(BitArray(int=x, length=4).bin)
# '0111'
print(BitArray(int=~x, length=4).bin)
# '1000'
print(~~True, ~~False)
# 1 0
for i in range(-100, 100):
assert i + ~i == -1
assert i ^ ~i == -1
assert bool(i) == ~~bool(i)
この演算子について知っておくべき有効なユースケースの例はありますか? あるとしても、この演算子を 以外の型でオーバーライドすることは一般的に受け入れられますint
か?