1 class MediaPlayer(object): 2 # 定义类属性记录单例对象引用 3 instance = None 4 5 # 定义对象初始化记录标记 6 init_flag = False 7 8 def __new__(cls, *args, **kwargs): 9 10 # 判断单例对象是否引用过 11 if cls.instance is None: 12 13 # 2.如果没引用则引用 14 cls.instance = super().__new__(cls) 15 16 #返回记录结果 17 return cls.instance 18 19 def __init__(self): 20 # 判断初始化记录,如果为True则返回 21 if MediaPlayer.init_flag: 22 return 23 24 # 如果为False则初始化 25 print("初始化播放器") 26 27 # 修改初始化记录标记 28 MediaPlayer.init_flag = True 29 30 player1 = MediaPlayer() 31 player2 = MediaPlayer() 32 33 print(player1) 34 print(player2)
初始化播放器 <__main__.MediaPlayer object at 0x00000203A0C45128> <__main__.MediaPlayer object at 0x00000203A0C45128>