单例设计模式
单例设计模式,在音频播放器中用的居多,单例设计模式是指:只有一个实例对象,即:每次只为对象分配一个固定的内存空间,使用__new__()方法。
如果一个类已经创建了一个实例对象,那么在使用该类创建实例对象时,不会分配内存空间,即创建不成功。
举个例子:音频软件一次只能放一首歌曲,不会出现两首歌曲同时占用“声道”。
class player: pass name1 = player() print(name1) name2 = player() print(name2)
结果是两个不同的内存地址:
<__main__.player object at 0x0000021EF42DC208>
<__main__.player object at 0x0000021EF42DC320>
使用__new__,实现单例设计:
class player: def __new__(cls, *args, **kwargs): return cls.__new__ name1 = player() print(name1) name2 = player() print(name2)
运行结果是两个相同的内存地址:
<function player.__new__ at 0x0000018C5F92E268>
<function player.__new__ at 0x0000018C5F92E268>