2024-05-29 04:18:43 发布
网友
我读了卢西亚诺·拉马略写的《流利的Python》。在对类set的描述中,他写道:
set
s & z # s.__and__(z) - intersection of s and z z & s # s.__rand__(z) - inversion operator &
我不明白。为什么在第二种情况下他不写:z.__and__(s)。作者说:“s和z的交集”!=“反转运算符”。在
z.__and__(s)
__and__和{}是否等于set()?在
__and__
set()
I can't understand. Why in the second case he doesn't write: z.__rand__(s).
z.__rand__(s)
因为这正是反向运算符的重点。它们也以__radd__、__rsub__等形式存在。在
__radd__
__rsub__
如果在执行a & b时,调用a.__and__(b)不存在或返回{},它会尝试(作为“最后的手段”)调用b.__rand__(a)。在
a & b
a.__and__(b)
b.__rand__(a)
有关详细信息,请参见the relevant part of Python's documentation。在
在您的示例中,z的类可能没有实现__and__,因此它返回到提供__rand__的{}。在
z
__rand__
因为这正是反向运算符的重点。它们也以
__radd__
、__rsub__
等形式存在。在如果在执行},它会尝试(作为“最后的手段”)调用
a & b
时,调用a.__and__(b)
不存在或返回{b.__rand__(a)
。在有关详细信息,请参见the relevant part of Python's documentation。在
在您的示例中,}。在
z
的类可能没有实现__and__
,因此它返回到提供__rand__
的{相关问题 更多 >
编程相关推荐