#定义一个类
class MusicPlayer (object):
#记录第一次被调用的引用
instance = None
#记录是否执行过初始化动作
init_flag = False
def __new__(cls, *args, **kwargs):
#1.判断类属性是否为空对象;
if cls.instance is None:
#2.调用父类中的方法,为第一个对象分配空间
cls.instance = super().__new__(cls)
#使用return返回类属性,这样后面再次调用类属性的时候则会返回到instance = None的引用中去.
return cls.instance
def __init__(self):
#判断是否执行过初始化动作;
if MusicPlayer.init_flag:
return
#没有执行的时候再去执行初始化动作
print("类属性第一次被调用")
#就需要去重新定义类属性的标记
MusicPlayer.init_flag = True
#定义对象
player1 = MusicPlayer()
player2 = MusicPlayer()
print(player1)
print(player2)
单例模式
最新推荐文章于 2025-05-23 19:33:43 发布