Python单例模式

Posted 小白一生

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python单例模式相关的知识,希望对你有一定的参考价值。

单例


class MusicPlayer(object):

    instance = None

    def __new__(cls, *args, **kwargs):

        if cls.instance is not None:
            return cls.instance
        else:
            cls.instance = super().__new__(cls)
            return cls.instance

player1 = MusicPlayer()
print(player1)

player2 = MusicPlayer()
print(player2)

单例初始化一次

class MusicPlayer(object):

    instance = None
    init_flag = False

    def __new__(cls, *args, **kwargs):

        if cls.instance is not None:
            return  cls.instance
        else:
            return super().__new__(cls)

    def __init__(self):

        if MusicPlayer.init_flag:
            return MusicPlayer.instance
        else:
            print("初始化播放器")
            MusicPlayer.init_flag = True

player1 = MusicPlayer()
print(player1)

player2 = MusicPlayer()
print(player2)

以上是关于Python单例模式的主要内容,如果未能解决你的问题,请参考以下文章

Python 单例设计模式

Python单例

一日一技:Python 下面最简单的单例模式写法

Python面向对象之单例模式

常用代码片段

常用代码片段