类集合中的“\uuu”和“uuu rand”有什么区别?

2024-05-29 04:18:43 发布

您现在位置:Python中文网/ 问答频道 /正文

我读了卢西亚诺·拉马略写的《流利的Python》。在对类set的描述中,他写道:

s & z   # s.__and__(z)   - intersection of s and z
z & s   # s.__rand__(z)   - inversion operator &

我不明白。为什么在第二种情况下他不写:z.__and__(s)。作者说:“s和z的交集”!=“反转运算符”。在

__and__和{}是否等于set()?在


Tags: andof情况运算符作者operatorinversionset
1条回答
网友
1楼 · 发布于 2024-05-29 04:18:43

I can't understand. Why in the second case he doesn't write: z.__rand__(s).

因为这正是反向运算符的重点。它们也以__radd____rsub__等形式存在。在

如果在执行a & b时,调用a.__and__(b)不存在或返回{},它会尝试(作为“最后的手段”)调用b.__rand__(a)。在

有关详细信息,请参见the relevant part of Python's documentation。在

在您的示例中,z的类可能没有实现__and__,因此它返回到提供__rand__的{}。在

相关问题 更多 >

    热门问题