Python学习 - 单次执行初始化init

# coding:utf-8

# 单例:让类创建无论多少个对象,最后永远只产生一个实例

# 单次执行初始化init

class MusicPlayer(object):

    instance = None

    def __new__(cls, *args, **kwargs):
        """重写new方法,一定要返回内存地址"""
        if cls.instance is None:
            cls.instance = object.__new__(cls)
            # python3
            # cls.instance = super().__new__(cls)

        return cls.instance

    init_flag = False
    def __init__(self):

        # 通过变量判断是否已经初始化
        if MusicPlayer.init_flag:
            return

        print '初始化'
        MusicPlayer.init_flag = True


player1 = MusicPlayer()
print player1

player2 = MusicPlayer()
print player2


猜你喜欢

转载自blog.csdn.net/weixin_38892128/article/details/86595931