Python——单例设计模式,,单例设计模式:让类创


单例设计模式:

让类创建的对象,在系统中只有唯一的实例,

使用python类内置的__new__()方法实现,__new__()方法在创建对象时会被自动调用,通过重写__new__()方法,使得无论用类型创建多少个对象,内存中都只创建一个对象的实例,此时__new__()方法必须返回此内置函数的调用,及return super().__new__(cls)

class MyClass():    # 类属性,记录第一个被创建对象的引用    instance = None    def __new__(cls, *args, **kwargs):        if cls.instance is None:            cls.instance = super().__new__(cls)        return cls.instance    def __init__(self):        print("初始化方法!")a = MyClass()print(a)b = MyClass()print(b)

技术图片

若想使得初始化动作只执行一次:

class MyClass():    # 类属性,记录第一个被创建对象的引用    instance = None    # 记录是否执行过初始化动作    init_flag = False    def __new__(cls, *args, **kwargs):        if cls.instance is None:            cls.instance = super().__new__(cls)        return cls.instance    def __init__(self):        if MyClass.init_flag:            return        print("初始化方法!")        MyClass.init_flag = Truea = MyClass()print(a)b = MyClass()print(b)

技术图片

Python——单例设计模式

评论关闭