单例是一种将类的实例限制为一个实例/对象的模式。有关python单例设计模式的更多信息,请参见此处。
class SingletonType(type): def __call__(cls, *args, **kwargs): try: return cls.__instance except AttributeError: cls.__instance= super(SingletonType, cls).__call__(*args, **kwargs) return cls.__instance
class MySingleton(object): __metaclass__ = SingletonType
class MySingleton(metaclass=SingletonType): pass
MySingleton() is MySingleton() # 确实,只有一个实例发生