我知道|
和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__
仅用于逐位&
。