# 执行结果
# demo
# DATE: 20190706
# DESCRIPTION: 单例模式(播放器、系统回收站)
class MusicPlayer(object):
count = 0 # 类属性
instance = None # 记录第一个被创建对象的引用
init_flag = False # 记录是否执行过初始化动作
def __new__(cls, *args, **kwargs):
print("\n==> 对象 %d" % cls.count)
if cls.instance is None:
cls.instance = super().__new__(cls) # 必须带cls
return cls.instance
def __init__(self):
MusicPlayer.count += 1
if MusicPlayer.init_flag:
return
print("初始化播放器")
MusicPlayer.init_flag = True
player1 = MusicPlayer()
print(player1)
player2 = MusicPlayer()
print(player2)