我发现这在Python中寻找单例概念。我想知道的是为什么self._instance = super(Singleton, self).__new__(self)
不会导致无限循环。我认为调用__new__
会启动一种递归,因为self._instance
不应该被设置。这个单身概念为什么不产生无限循环?
我的错误在哪里?
class Singleton(object):
_instance = None
def __new__(self):
if not self._instance:
self._instance = super(Singleton, self).__new__(self)
return self._instance
不是'Singleton .__ new __()'应该返回一个'Singleton'的实例吗?但正如你所提到的,当你做'super(Singleton,self)时,你会得到一个'object'的实例.__ new __(self)'' – Adrian