Python中的单例模式
- 在Python中__new__方法用于创建对象,__init__用于初始化对象
class MusicPlayer(object):
instance = None
init_flag = False
def __new__(cls, *args, **kwargs):
if cls.instance is None:
cls.instance = super().__new__(cls)
return cls.instance
def __init__(self):
if MusicPlayer.init_flag:
return
print("初始化播放器")
MusicPlayer.init_flag = True
player_1 = MusicPlayer()
player_2 = MusicPlayer()
print(player_1)
print(player_2)