为什么"or"和"|"运算符共享相同的"__or__"神奇方法?



我知道|or运算符在python中有不同的含义和行为。例如:

>>> s1 = {1, 2, 3}
>>> s2 = {10, 20, 30}
>>> s1 or s2
{1, 2, 3}
>>> s1 | s2
{1, 2, 3, 20, 10, 30}

但这两个运算符共享相同的__or____ror__魔术方法。为什么?

由于or短路,该运算符没有魔术钩方法。and也是如此。

换句话说,__or____ror____ior__仅用于逐位|。类似地,__and____rand____iand__仅用于逐位&

最新更新