Python使用metaclass实现Singleton模式的方法

 更新时间:2015年05月05日 10:41:52   作者:鸪斑兔  
这篇文章主要介绍了Python使用metaclass实现Singleton模式的方法,实例分析了Python基于metaclass实现单例模式的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下

本文实例讲述了Python使用metaclass实现Singleton模式的方法。分享给大家供大家参考。具体实现方法如下:

class Singleton(type):
  def __call__(cls, *args, **kwargs):
    print "Singleton call"
    if not hasattr(cls, 'instance'):
      cls.instance = super(Singleton, cls).__call__(*args, **kwargs)
    return cls.instance
  def __new__(cls, name, bases, dct):
    print "Singleton new"
    return type.__new__(cls, name, bases, dct)
  def __init__(cls, name, bases, dct):
    print "Singleton init"
    super(Singleton, cls).__init__(name, bases, dct)
class Cache(object):
  __metaclass__ = Singleton
  def __new__(cls, *args, **kwargs):
    print "Cache new"
    return object.__new__(cls, *args, **kwargs)
  def __init__(cls, *args, **kwargs):
    print "Cache init"
  def __call__(cls, *args, **kwargs):
    print "Cache call"
print Cache()
print Cache()

输出:

Singleton new
Singleton init
Singleton call
Cache new
Cache init
<__main__.Cache object at 0x01CDB130>
Singleton call
<__main__.Cache object at 0x01CDB130>

希望本文所述对大家的Python程序设计有所帮助。

相关文章

  • 使用keras内置的模型进行图片预测实例

    使用keras内置的模型进行图片预测实例

    这篇文章主要介绍了使用keras内置的模型进行图片预测实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-06-06
  • Python实现检测文件的MD5值来查找重复文件案例

    Python实现检测文件的MD5值来查找重复文件案例

    这篇文章主要介绍了Python实现检测文件的MD5值来查找重复文件案例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-03-03
  • python使用Matplotlib画饼图

    python使用Matplotlib画饼图

    这篇文章主要介绍了python使用Matplotlib画饼图,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-09-09
  • python-pymysql如何实现更新mysql表中任意字段数据

    python-pymysql如何实现更新mysql表中任意字段数据

    这篇文章主要介绍了python-pymysql如何实现更新mysql表中任意字段数据问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-05-05
  • pycharm 批量修改变量名称的方法

    pycharm 批量修改变量名称的方法

    这篇文章主要介绍了pycharm 批量修改变量名称的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-08-08
  • python web框架学习笔记

    python web框架学习笔记

    这篇文章主要为大家分享了python web框架学习笔记,感兴趣的小伙伴们可以参考一下
    2016-05-05
  • python实现最短路径的实例方法

    python实现最短路径的实例方法

    在本篇内容里小编给大家整理的是关于python实现最短路径的实例方法,有需要的朋友们可以参考下。
    2020-07-07
  • python中while和for的区别总结

    python中while和for的区别总结

    在本篇内容里小编给大家分享的是关于python中while和for的区别以及相关知识点,需要的朋友们可以学习下。
    2019-06-06
  • python元组拆包实现方法

    python元组拆包实现方法

    在本篇文章里小编给大家整理的是一篇关于python元组拆包实现方法及相关实例,有兴趣的朋友们可以学习下。
    2021-02-02
  • Python爬虫获取基金基本信息

    Python爬虫获取基金基本信息

    这篇文章主要介绍了Python爬虫获取基金基本信息,文章基于上一篇文章内容基于python的相关资料展开主题,需要的小伙伴可以参考一下
    2022-05-05

最新评论