python 通过元类 实现单例模式
Posted 78 months ago python object metaclass 单例模式 工厂模式
class Singleton(type):
_instances = {}
def __call__(cls, *args, **kwargs):
if cls not in cls._instances:
cls._instances[cls] = super(Singleton, cls).__call__(*args, **kwargs)
return cls._instances[cls]
class oneObj(metaclass=Singleton):
def __init__(self):
pass
python 中 类 也是对象
由于类也是对象,python中的类只要使用class 关键字就可以动态的创建类
def creatClass():
class classDemo():
pass
return classDemo
return 出来的就是一个类对象 而不是实例化后的
用type创建一个类
objs = type('objs', (), {'echo_bar': "asdsad"})
对象名 集成的元祖 类属性
创建元类
class Singleton(type):
def __new__(singleton, class_name, class_parents, class_attr):
return super(Singleton, cls).__new__(cls,class_name, class_parents, class_attr)