python实现单例模式
Posted zhaogang0104
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python实现单例模式相关的知识,希望对你有一定的参考价值。
class SingletonType(type):
def __init__(self,*args,**kwargs):
super(SingletonType,self).__init__(*args,**kwargs)
def __call__(cls, *args, **kwargs): # 这里的cls,即Foo类
print('cls',cls)
obj = cls.__new__(cls,*args, **kwargs)
cls.__init__(obj,*args, **kwargs) # Foo.__init__(obj)
return obj
class Foo(metaclass=SingletonType): # 指定创建Foo的type为SingletonType
def __init__(self,name):
self.name = name
def __new__(cls, *args, **kwargs):
return object.__new__(cls)
obj = Foo(‘xx‘)
以上是关于python实现单例模式的主要内容,如果未能解决你的问题,请参考以下文章