def __new__(cls): 默认用来进行创建对象 dog=Dog() 此时 1先创建对象,即调用__new__方法 2调用__init__方法初始化 3把创建对象的引用给了dog 所以 Java中的构造方法是两个方法的集合 既创建对象 又初始化
单例(只有一个对象)
class Dog(object):
__instance=None
__init_flag=False
def __new__(cls, *args, **kwargs): #此处*arg可以实现不同参数的修改
if cls.__instance==None:
cls.__instance=object.__new__(cls)
return cls.__instance
else:
return cls.__instance
def __init(self,name):
if Dog.__init_flag==False: #此处可以实现让__init__方法只进行一次
self.name=name
Dog.__init_flag=True
a=Dog("lala")
b=Dog("heihei")
此时a b 都是同样的对象引用 即指向同一个对象

本文深入探讨了Python中单例模式的实现原理,通过__new__和__init__方法的巧妙运用,确保整个应用程序中只有一个实例存在。文章详细解释了单例模式下对象的创建和初始化过程,并提供了具体代码示例。
1976

被折叠的 条评论
为什么被折叠?



