Bitwise or works at the level of bits, so the question is more like, in:
>>> bin(0b011 | 0b010)
'0b11'
Does the leading 1 come from the first argument or the second argument? It isn't really a sensible question for bits, since the 1s are indistinguishable. However the values in the hash table are distinguishable, so it's a valid question.Also, taking an example from another comment:
>>> {0} | {False}
{0}
>>> {False} | {0}
{False}
This is another example where the union operator is used, but here it picks the first value, rather than the second value.
Re:Python 3.9
by quietbritishjim on Tuesday October 06, 2020 @05:00AM
(#24695903)
Ouch, that is pretty nasty.
Are you also surprised when the original bitwise meaning of "|" does not return either of the two arguments?
Here's the same thing as binary: