8.请简述python中单例模式的特点,并手写一个单例模式?
# 请简述python中单例模式的特点,并手写一个单例模式?
'''类比电脑回收站,整个系统都用这个唯一回收站,回收站也自行提供自己的实例.'''
'''主要特点:确保某一个类只有一个实例对象,而且自行实例化并向整个系统提供这个实例,
这个类成为单例类,单例模式是一种对象创建型模式.'''
'''1.保证只有一个对象'''
'''2.只执行一次__init__方法'''
class Carfactory(object):
'''定义一个类'''
__first__new = True #确保是第一次 一旦创建对象就关闭
__instance = None #默认没有实例对象
__first__init = True
def __new__(cls,*args,**kwargs):
'''创建对象'''
if cls.__first__new:
cls.__first__new = False
cls.__instance = object.__new__(cls)
return cls.__instance
else:
return cls.__instance
def __init__(self, new_name):
'''初始化对象属性'''
if Carfactory.__first__init:
self.new_name = new_name
Carfactory.__first__init = False
a = Carfactory('baoma')
b = Carfactory('aodi')
print(id(a))
print(id(b))
# id指向同一个对象

浙公网安备 33010602011771号