COMPLEX-B

导航

Python 单列

1.__new__内置方法

  在对类进行实例化时自动执行

  功能1:为对象分配空间

  功能2:返回空间的引用

2.单列实现方法

  

class MusicPlayer:
    # 记录对象内存引用,初始值为None
    instance = None
    # 重写__new__方法,使得每次创建对象时都返回同样的内存引用
    def __new__(cls, *args, **kwargs):
        # 如果还没有对象,则在第一次创建对象时调用父类方法为第一个对象分配内存,并记录下此内存的引用
        if cls.instance is None:
            cls.instance = super().__new__(cls)
        # 注意:在重写__new__方法的时候一定要返回一个内存引用,否则无法实列对象
        return cls.instance

a=MusicPlayer()
b=MusicPlayer()
print(a,b)

 

posted on 2018-11-14 21:22  COMPLEX-B  阅读(121)  评论(0编辑  收藏  举报