在类的实例化期间,如何检查该类的对象是否已经存在,如果存在,则指向已经存在的对象?

时间:2018-10-24 13:01:20

标签: python

在一次采访中有人问我这个问题。我试图做的如下:

class A:
    l = []
    def __init__(self):
        if len(A.l)==0:
            A.l.append(self)
        else:
            return A.l[0]

a = A()
b = A()

我回到家运行了这段代码,并理解它不起作用。

所以我想知道什么是解决此问题的正确方法。预期的结果是,第二次调用A()时,b应当指向已经存储在a中的对象(第一个创建的对象)。

1 个答案:

答案 0 :(得分:1)

您要实现Singleton之类的东西。最简单的方法是覆盖__new__而不是__init__