单例模式
(一)、单例模式 设计模式:基于类做的一些设计,以此来实现数据封装的管理 单例模式:最常见的一种设计模式,经常被考到(单例模式:一个类只能生成一个实例) #单例模式的本质:做实例化的时候,判断有没有类变量_instance, 如果没有,生成一个Singleton的父类对象object的实例,赋值给_instance(只会做一次),返回cls._instance 如果有这个_instance类变量,直接返回cls._instance (或者本质这样理解:通过__new__的if判断逻辑,判断是否生成过实例地址,如果没生成,生成一个,生成了呢?就用老的那个地址。) class Singleton(object): def __init__(self): self.c=1000 def __new__(cls, *args, **kw): #规定,__new__必须返回一个实例(当前类的实例或者父类的实例) #如果cls这个类没有类变量_instance,则会执行if下的代码 if not hasattr(cls, '_instance'): orig = super(Singleton, cls) #找到父类的类对象object,也可以写成orig = super() cls._instance = orig.__new__(cls, *args, **kw) #可以写成不带参数