单例模式
单例模式的设计模式是什么?它有什么用?
单例模式保证一个类仅有一个实例,同时这个类还必须提供一个访问该类的全局访问点。
单例模式,新建多少个对象,内存地址都是一样的
在程序运行期间保证类的实例只有1个,例如数据库连接
单例模式能让程序使用内存急剧减少
class C:
__instance = None # 声明一个私有属性,为None,保存实例
# 重写默认__new__方法创建实例
def __new__(cls, *args, **kwargs):
if not cls.__instance: # 判断__instance是否为None,如果是则创建对象
cls.__instance = object.__new__(cls)
return cls.__instance
def f1(self):
print('C类')
if __name__ == '__main__':
c = C()
c1 = C()
# c和c1是一样的嘛?
print(c is c1) # True