Python----单例

目的:让类创建对象,在系统中只有唯一的一个实例。

每一次执行类名()返回的对象,内存地址是相同的

需要重写new内置方法,一定要返回return supper().new(cls)

new 为对象分配空间,返回对象的引用

init对象初始化,定义实例属性

class MusicPlayer(object):

    def __new__(cls, *args, **kwargs):
        # 1. 创建对象时,new 方法会被自动调用
        print('创建对象, 分配空间')

        # 2. 为对象分配空间
        instance = super().__new__(cls)

        # 3. 返回对象的引用
        return instance

    def __init__(self):
        print('播放器初始化')


player = MusicPlayer()
print(player)

创建对象, 分配空间
播放器初始化
__main__.MusicPlayer object at 0x0000000001E1E828

你可能感兴趣的:(Python)