我可以在python中为set “difference”方法创建别名“minus”吗

can I create the alias "minus" for the set "difference" method in python

提问人:rkg125 提问时间:6/12/2023 最后编辑:Chris_Randsrkg125 更新时间:6/12/2023 访问量:32

问:

由于 minus 在集合论书籍中经常用于表示差分,因此我尝试在 Python 中将 difference 别名为 minus

减号 = 差值

但我得到了

NameError:未定义名称“difference”

有没有办法做我想做的事?

= 适用于别名函数名称,但显然不适用于方法

python-3.x 方法 别名

评论

2赞 Konrad Rudolph 6/12/2023
您是否已经可以写入以计算 和 之间的集合差?无需创建一个名为 的新方法,无论如何,该方法的可读性不如 .a - babminusa - b
0赞 chepner 6/12/2023
difference反正不是一个全球名称;它是类的一个属性。 如果可以向 添加新属性,则可以将 ,但是setsetset.minus = set.difference

答:

0赞 Nick ODell 6/12/2023 #1

您可以创建 set 的自定义子类,并使用调用 set 方法的减号方法。__sub__

例:

class SetWithDifference(set):
    def minus(self, other):
        return self.__sub__(other)


a = SetWithDifference({'a', 'b', 'c'})
b = SetWithDifference({'a', 'b'})
print(a.minus(b))