python class 单例的实现

‘’’
单例的实现
‘’’
class Person(object):
‘’‘这个类是单例类’’’
__instance = None
‘’‘这个类属性储存的是实例对象’’’
def new(cls, *args, **kwargs):
if not cls.__instance:
#如果__instance没有储存实例对象
cls.__instance = super(Person, cls).new(cls, *args, **kwargs)
return cls.__instance
if name == ‘main’:
zhang = Person()
print(id(zhang))#id()指向对象的内存地址
zhang2 = Person()
print(id(zhang2))

优点:1、在单例模式中,活动的单例只有一个实例,对单例类的所有实例化得到的都是同样的一个实例,确保所有的对象访问的一个实例
2、提供了对唯一实例的受控访问
3、内存中只有一个对象,节约系统资源
4、可以实现可变数目的实例
5、避免对资源的多重占用
缺点:
1、不适用变化的对象,单例会引起数据错误
2、扩展有困难
3、开销问题
应用场景:
资源管理类一般设计成单例模式
需要频繁实例化然后销毁的对象
创建对象耗时或者耗费资源过多但又经常用到的对象
有状态的工具类对象
频繁访问数据库或者文件的对象

猜你喜欢

转载自blog.csdn.net/weixin_44737399/article/details/89089635