class MetaSingleton(type):
    def __init__(self,*args,**kwargs):
        self._instance = None
        super(MetaSingleton,self).__init__(*args,**kwargs)

    def __call__(self, *args, **kwargs):
        if self._instance is None:
            self._instance = super(MetaSingleton,self).__call__(*args,*kwargs)
        return self._instance

class Singleton1(object,metaclass=MetaSingleton):
    pass

s1 = Singleton1()
s2 = Singleton1()
print('singleton1',s1 is s2)
posted on 2019-09-02 01:08  燕山明月  阅读(60)  评论(0编辑  收藏  举报