猿问

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

我在一次采访中被问到这个问题。我试图做的是如下:


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(第一个创建的对象)。


人到中年有点甜
浏览 188回答 1
1回答

幕布斯6054654

你想实现像单例这样的东西。最简单的方法是覆盖__new__而不是__init__.
随时随地看视频慕课网APP

相关分类

Python
我要回答