Python 单例模式
Synopsis: 单例模式(Singleton Pattern)是一种常用的软件设计模式,该模式的主要目的是确保某一个类只有一个实例存在。当你希望在整个系统中,某个类只能出现一个实例时,单例对象就能派上用场,比如整个应用只生成一个配置文件的实例对象。Python 的模块是天然的单例模式,这在大部分情况下应该是够用的,当然,我们也可以使用装饰器、元类等方法
1. 元类
可以通过元类来改变实例创建方式,实现单例、缓存或其他类似的特性
class Singleton(type): """定义一个元类并自己实现 __call__() 方法""" def __init__(self, *args, **kwargs): self.__instance = None super().__init__(*args, **kwargs) def __call__(self, *args, **kwargs): if self.__instance is None: self.__instance = super().__call__(*args, **kwargs) return self.__instance else: return self.__instance # Example class Spam(metaclass=Singleton): def __init__(self): print('Initing Spam')
那么Spam类就只能创建唯一的实例了,演示如下:
未经允许不得转载: LIFE & SHARE - 王颜公子 » Python 单例模式
0 条评论
评论者的用户名
评论时间暂时还没有评论.