我知道|
和or
运算符在python中具有不同的含义和行为。 E.g:
>>> s1 = {1, 2, 3}
>>> s2 = {10, 20, 30}
>>> s1 or s2
{1, 2, 3}
>>> s1 | s2
{1, 2, 3, 20, 10, 30}
但两家运营商共享相同的__or__
和__ror__
魔术方法。为什么呢?
答案 0 :(得分:5)
由于or
短路,因此该运算符有 no 魔术挂钩方法。这同样适用于and
。
换句话说,__or__
,__ror__
和__ior__
仅用于按位|
。同样,__and__
,__rand__
和__iand__
仅用于按位&
。