我创建了自己的Customset类,它实现了Python集合的几乎所有方法。 当我使用此自定义集的实例时,许多集合运算符都会失败。他们失败的原因类似于:
TypeError:不支持的操作数类型 -:'Customset' 和 Customset'
或
类型错误:'<=' not supported between instances of 'Customset' and Customset'
失败的运算符包括:-、-=、&、&=、<, <=, >、>=、^、^=、|、|=、==
我希望它们能够映射到以下文档中记录的方法:
https://docs.python.org/3.12/library/stdtypes.html#set 和 https://www.w3schools.com/python/python_ref_set.asp
是的,自定义集合类的
<operator>
==> <method>
映射确实与内置集合类的映射不同。自定义类的定义中没有任何内容告诉 python 使用与 set 实例的唯一映射相同的映射。
实际的映射似乎都是这些运算符的正常魔法 dunder 方法:
- ==> __sub__
-= ==> __isub__
& ==> __and__
&= ==> __iand__
< ==> __lt__
<= ==> __le__
> ==> __gt__
>= ==> __ge__
^ ==> __xor__
^= ==> __ixor__
| ==> __or__
|= ==> __ior__
== ==> __eq__