Python单例

# coding=utf-8
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
        else:
            print("init ...")
            MusicPlayer.init_flag = True

if __name__ == "__main__":
    player1 = MusicPlayer()
    print(player1)
    player2 = MusicPlayer()
    print(player2)


覆盖new,只返回instance

如果只初始化一次,覆盖init定义init_flag


参考资料:

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 单例模式 Singleton 网上搜索python 单例模式,实现方式大致有一下几种方式: 以模块导入的方式 使用...
    snailpy阅读 855评论 0 7
  • 单例022_对象分配空间和初始化.png 目标 单例设计模式 __new__ 方法 Python 中的单例 01....
    ottox阅读 579评论 0 0
  • 相关代码已经上传至Github:Python_Development_Interview,大家可以收藏专题-Pyt...
    云爬虫技术研究笔记阅读 2,368评论 0 6
  • 单例模式 单例模式(Singleton Pattern)是一种常用的软件设计模式,该模式的主要目的是确保某一个类只...
    星丶雲阅读 297评论 0 2
  • 夜色里 你以一抹微笑泛舟 泛舟在我蓝色的心河 星空 洒落一片如雨的花瓣 掩映你如火的容颜 风 缠绵地跟着水儿打转 ...
    当风起时边走边记阅读 389评论 0 3

友情链接更多精彩内容