Python单例模式

1.单例模式要点

  • 某个类只有一个实例;
  • 类必须自行创建实例
  • 必须自行向系统提供这个实例

2.实现单例模式方法

  • 使用模块
  • 使用__new__
  • 使用装饰器(decorator)
  • 使用元类(metaclass)

3.模块

一:将类保存到test1.py文件中

#test1.py

class Opt(object):

    def foo(self):

        print("hello")

my_opt = Opt()

二:获取一个单例对象

from .test1 import my_opt

my_opt.foo()


4.使用__new__

说明:__init__和__new__的区别,__init__是类实例初始化的时候调用的,__new__是类创建实例的时候调用的,故而可以使用__new__来创建单例模式。

class Singleton(object):

    def __new__(cls,*args,**kwargs):

        if not hasattr(cls, '_instance'):

            cls._instance = Super(Singleton,cls).__new__(cls,*args,**kwargs)

        return cls._instance

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章