为什么不能对 python 中的字节对象进行异或运算?

Why can't you xor bytes objects in python?

我想我理解 python 字节对象,但是支持对字节字符串的按位操作似乎是一个很明显的特性。不明白为什么不支持

>>>'abcdefg'.encode('ascii')
b'abcdefg'

好的。我从一个字符串变成了类似于我的字符串在 ascii 中的字节表示形式。

所以当我尝试时:

>>> a = 'abcdefg'.encode('ascii')
>>> a ^ a
  File "<stdin>", line 1, in <module>
TypeError: unsupported operand type(s) for ^: 'bytes' and 'bytes'

为什么?为什么 python 不支持这个?关于 bytes 对象,有什么我不明白的地方导致这不可行或模棱两可吗?

它不受支持主要是因为它在 "normal" Python 代码中很少需要,当你需要它时你可能已经在使用 third-party 包了, like NumPy,有这样的东西(以及更多!)built-in 并且非常高效......至少,比标准 Python 的性能要高得多。

已提议此功能on the python bug tracker。并且有提议的补丁(我对此感到恼火后写的)。但是现在的反馈是负面的,如果要纳入还需要更多。