在一次采访中有人问我这个问题。我试图做的如下:
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
中的对象(第一个创建的对象)。
答案 0 :(得分:1)
您要实现Singleton之类的东西。最简单的方法是覆盖__new__
而不是__init__
。