class A():
def __init__(self, fn):
self.fn = fn
a1 = A('a')
a2 = A('a')
b = A('b')
print (a1==a2)
print (a1==b)
结果首先应为True,第二个为False。我知道在Python中实现单例的一些方法。但是所有这些只为每次调用生成一个实例。我们如何将__new__方法链接到__init __?
答案 0 :(得分:3)
没有理由在这里考虑单身人士,没有理由对__new__
做任何事情。如果您希望根据某些条件将两个实例视为相等,则需要定义__eq__
。
def __eq__(self, other):
return isinstance(other, A) and self.fn == other.fn
(注意,fn
通常用作函数的持有者;您应该考虑另一个属性名称。)
答案 1 :(得分:0)