实现 All / Universal 集
Implementing the All / Universal set
为了简化我的代码,我想实现一个包含 所有内容 的集合,即 UniversalSet
。我认为解决这个问题的最简单方法是为任何查询设置 returns True 的自定义集。在我的特殊情况下,我最感兴趣的是 __intersect__
集合,因此满足以下条件:
u_set = UniversalSet()
u_set & {1, 2, 3} == {1, 2, 3} # (1)
{1, 2, 3} & u_set == {1, 2, 3} # (2)
我按以下方式对 set
进行了子类化:
class UniversalSet(set):
def __and__(self, other):
return other
这适用于 (1)
,但 (2)
仍然失败。有没有类似的简单方法让 (2)
工作?
您还需要定义 and 运算符 (__rand__
) 的 reversed 版本,以便当它是第二个参数以及首先.
class UniversalSet(set):
def __and__(self, other):
return other
def __rand__(self, other):
return other
为了简化我的代码,我想实现一个包含 所有内容 的集合,即 UniversalSet
。我认为解决这个问题的最简单方法是为任何查询设置 returns True 的自定义集。在我的特殊情况下,我最感兴趣的是 __intersect__
集合,因此满足以下条件:
u_set = UniversalSet()
u_set & {1, 2, 3} == {1, 2, 3} # (1)
{1, 2, 3} & u_set == {1, 2, 3} # (2)
我按以下方式对 set
进行了子类化:
class UniversalSet(set):
def __and__(self, other):
return other
这适用于 (1)
,但 (2)
仍然失败。有没有类似的简单方法让 (2)
工作?
您还需要定义 and 运算符 (__rand__
) 的 reversed 版本,以便当它是第二个参数以及首先.
class UniversalSet(set):
def __and__(self, other):
return other
def __rand__(self, other):
return other