(1)为什么使用设计模式?
使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。
(2)单例设计模式概念
让类创建的对象只有唯一的一个实例,即每次执行 类名() 返回的对象,内存地址都是相同的。
(3)__new__与__init__方法的作用:
使用 类名() 创建对象时,python解释器首先会调用 __new__ 方法为对象分配内存空间,该方法为基类object内置的静态方法,一般无需手动调用。
__new__方法的作用有两个:①为对象分配内存空间;②返回对象引用。
__init__方法的作用有两个:①对象初始化;②定义实例属性。
(4)如何实现单例设计模式?
实现单例设计模式,其实就是重写object基类的内置静态方法__new__,实现每次调用 类名()返回的对象的内存地址不变。
1 #! /usr/bin/env python 2 # -*- coding:utf-8 -*- 3 class MusicPlayer(object): 4 instance = None 5 def __new__(cls, *args, **kwargs): 6 if cls.instance is None: 7 print("创建对象,分配空间") 8 cls.instance = super().__new__(cls) # 一定要重新调用父类的__new__方法,并添加参数cls,表示当前调用的类 9 return cls.instance #返回对象的引用,解释器才会继续调用__init__方法初始化对象 10 11 def __init__(self): 12 print("播放器初始化") 13 14 if __name__ == ‘__main__‘: 15 piano = MusicPlayer() 16 print(piano) 17 18 guitar = MusicPlayer() 19 print(guitar)
原文:https://www.cnblogs.com/clearlove4396/p/11442848.html