gpt4 book ai didi

python - 实现 All/Universal 集

转载 作者:太空狗 更新时间:2023-10-29 22:30:09 26 4
gpt4 key购买 nike

为了简化我的代码,我想实现一个包含一切的集合,即UniversalSet。我认为解决此问题的最简单方法是拥有一个自定义集,该集对任何查询都返回 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__) 的反转版本,以便在它是第二个参数和第一个参数时调用您的子类方法。

class UniversalSet(set):
def __and__(self, other):
return other

def __rand__(self, other):
return other

关于python - 实现 All/Universal 集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28565838/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com