单例模式:永远用一个对象的实例
使用时遵循规则 :创建的对象跟对象之间内部封装的值是一模一样的,则没必要创建多个对象
两种使用方式:
1. low版单例: 缺点调用方式变化 Foo().get_instance()
class Foo(object): instance = None def _init_(self): pass @classmethod def get_instance(cls): if return Foo.instance else: Foo.instance = Foo() return Foo.instance
2. 高级版: 基于 __new__ 方法实现的单例模式
class Foo(object): __instance = None def __init__(self): pass def __new__(cls,*args,**kwargs): if not cls.__instance: obj = object.__new__(cls,*args,**kwargs) cls.__instance = obj return cls.__instance