class MusicPlayer(object):
instance=None# 记录第一个被创建的对象的引用
def __new__(cls, *args, **kwargs):
if cls.instance is None :
cls.instance=super().__new__(cls)
return cls.instance
init_flag=False#是否执行初始化动作
def __init__(self):
if MusicPlayer.init_flag:#必须用 类名.属性 的方式
return
print("初始化")
MusicPlayer.init_flag=True
M1=MusicPlayer()
M2=MusicPlayer()
# 发现两个对象的地址相同,本质上是相同的两个对象
print(id(M1))
print(id(M2))
Python学习:单例设计模式
最新推荐文章于 2024-08-27 16:38:10 发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)