首页 > 其他 > 详细

通过__new__实现单实例

时间:2020-01-14 15:37:14      阅读:68      评论:0      收藏:0      [点我收藏+]
class MusicPlayer(object):
 
    # 定义类属性记录创建对象的引用初始值设为None
    instance = None
 
    init_flag = False
 
    def __new__(cls, *args, **kwargs):
        # 1.判断类属性是否为None
        if cls.instance is None:
            # 2.如果对象还没有被创建,就调用父类的方法为第一个对象分配空间
            cls.instance = super().__new__(cls)
        # 3.把类属性中保存的引用返回给Python的解释器
        return cls.instance
 
    def __init__(self):
        if MusicPlayer.init_flag:
            return
 
        print("初始化播放器")
        MusicPlayer.init_flag = True
 
 
player1 = MusicPlayer()
print(player1)
 
player2 = MusicPlayer()
print(player2)


技术分享图片

 

 

 

通过__new__实现单实例

原文:https://www.cnblogs.com/testzcy/p/12191667.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!