Python之用尽量多的方法实现单例模式

发布时间:2022-04-18 09:51:01 人气:29 作者:多测师

  1:使用模块

  Python的模块就是天然的单例模式。

  因为模块在第一次导入时,会生成 .pyc 文件,当第二次导入时,就会直接加载 .pyc 文件,而不会再次执行模块代码。

  因此,我们只需把相关的函数和数据定义在一个模块中,就可以获得一个单例对象了。

  例如:

  class V1(object):

  def foo(self)

  pass

  V1 = V1()

Python之用尽量多的方法实现单例模式

  将上面代码保存在文件test.py,要使用时,直接在其他文件中导入此文件中的对象,这个对象既是单例模式的对象

  如:from a import V1

  2:使用装饰器

  def Singleton(cls):

  _instance = {}

  def _singleton(*args, **kargs):

  if cls not in _instance:

  _instance[cls] = cls(*args, **kargs)

  return _instance[cls]

  return _singleton

  @Singleton

  class A(object):

  a = 1

  def __init__(self, x=0):

  self.x = x

  a1 = A(2)

  a2 = A(3)

  3:使用类

  4:基于__new__方法实现

  当我们实例化一个对象时,是先执行了类的__new__方法

  当:(我们没写时,默认调用object.__new__),实例化对象;然后再执行类的__init__方法,对这个对象进行初始化,所有我们可以基于这个,实现单例模式

  以上内容为大家介绍了Python之用尽量多的方法实现单例模式,希望对大家有所帮助,如果想要了解更多Python相关知识,请关注多测师。https://www.e70w.com/xwzx/


返回列表
在线客服
联系方式

热线电话

17727591462

上班时间

周一到周五

二维码
线