BZ易风

导航

 
 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>

  

posted on 2019-08-13 14:32  BZ易风  阅读(86)  评论(0编辑  收藏  举报