单例——让类创建的对象,在系统中只有唯一的一个实例
class Single(object):
# 定义一个类属性做判断
__instance = None
def __new__(cls)
# 如果__instance为空证明是第一次创建实例
if cls.__instance == None:
# 通过父类的__new__(cls)创建实例
cls.__instance == object.__new__(cls)
return cls.__instance
# 如果创建过对象,就不会创建新对象了
else:
# 返回上一个对象的引用
return cls.__instance
a = Single()
b = Single()
print(id(b))
print(id(a))
打印a和b的id,发现是一样的
- 我创建了a,b两个对象,
- 但两个对象的引用地址都是一个