IWSPythoner

  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 :: 管理 ::

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指向同一个对象
posted on 2017-08-14 22:45  IWSPythoner  阅读(873)  评论(0)    收藏  举报