我刚刚通过这个问题在 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
?