仅仅实现单利如下:
class single(object):
__instance = None
def __init__(self,name):
self.name = name
def __new__(cls, *args, **kwargs):
if cls.__instance is None:
cls.__instance = object.__new__(cls)
return cls.__instance
return cls.__instance
A1=single('aa')
print(id(A1))
print(A1.name)
A2=single('bb')
print(id(A2))
print(A2.name)
实现单例且只初始化化一次
class single(object):
__instance = None
__flag=None
def __init__(self,name):
if self.__flag is None:
self.name = name
self.__flag = True
def __new__(cls, *args, **kwargs):
if cls.__instance is None:
cls.__instance = object.__new__(cls)
return cls.__instance
return cls.__instance
A1=single('aa')
print(id(A1))
print(A1.name)
A2=single('bb')
print(id(A2))
print(A2.name)
运行结果如下图:

975

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



