某个类实现了__call__方法意味着该类的对象是可调用的,可以想像函数调用的样子。再考虑一下foo=Foo()这种实例化的形式,是不是很像啊。..._instance = cls(*args, **kwargs)', 防止死循环,
# cls的调用行为已经被当前'__call__'协议拦截了
# 使用...__call__来生成cls的实例
cls._instance = super(Singleton, cls)....__new__
__init__不是Python对象的构造方法,__init__只负责初始化实例对象,在调用__init__方法之前,会首先调用__new__方法生成对象,可以认为__new__方法充当了构造方法的角色..._instance = super(Singleton, cls).__new__(cls, *args, **kwargs)
return cls.