python - 实现 All/Universal 集

标签 python set

为了简化我的代码,我想实现一个包含一切的集合,即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/

相关文章:

set - 如何在Openshift中删除podAntiAfinity

list - F# 使用 set.fold 设置为列表

python - 如何使用 tf.keras 在 RNN 中应用层归一化?

Python 找不到 Importlib

python - 如何从 gridSearchCV 的输出中获取特征名称

python - 从压缩字节加载 numpy 数组

ffmpeg设置填充具有不同的顶部和底部栏背景颜色

python - NLTK POS 标签 : how to put the 'Word' and its corresponding 'POS Tag' in a DataFrame

python - 如何改进 Python 中的以下列表到列表查找?

SQL multi SET with one WHERE